编辑从@ Html.EditorFor生成的属性

时间:2011-05-10 14:56:41

标签: asp.net-mvc asp.net-mvc-3 razor

我想知道是否可以编辑@ Html.EditorFor(model => item.Title)正在生成的属性值

@ Html.EditorFor(model => item.Title)会生成这个:

<input class="text-box single-line" id="item_Title" name="item.Title" type="text" value="Avatar" />

我想知道是否有可能编辑id attribut?

谢谢!

2 个答案:

答案 0 :(得分:3)

我不认为你可以编辑id,因为EditorFor的意思是它“绑定”到你正在应用它的模型的属性。如果您需要其他ID,可以尝试使用Html.TextBox创建自己的文本框。

答案 1 :(得分:1)

创建您自己的编辑器模板,以自定义渲染您想要的任何内容。 看到: http://www.codecapers.com/post/Display-and-Editor-Templates-in-ASPNET-MVC-2.aspx 然后,您可以控制编辑器html的发射方式。你可能需要做一些lambda解析魔法来获得模型变量名称。我不得不研究更多 - 只是想在这里给出一个指针以防其他人没有回复。

在这种情况下,您可能需要编写自己的扩展方法,该方法接受lambda并根据该lambda创建名称。您可以在此处查看如何解析lambda作为示例: http://blogs.planetcloud.co.uk/mygreatdiscovery/post/Creating-tooltips-using-data-annotations-in-ASPNET-MVC.aspx

这一切可能都不太好......但是想提供至少其他东西:)