是否有可用于获取表单元素名称的MVC助手方法?

时间:2011-08-19 14:38:36

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

使用ASP.net MVC,我有一个类似的模型:

public class Project {
    public string ProjectName { get; set; }
    // SNIP ...
}

我的观点包含:

@model Project

@Html.TextBoxFor(m => m.ProjectName)

我想写一些引用文本框的javascript:

<script type="text/javascript">
    $('#ProjectName').someMethod();
</script>

我不想在那里硬编码ProjectName。理想情况下,我想使用辅助方法来获取名称,以防万一我重构并重命名属性:

<script type="text/javascript">
    $('#@Html.NameFor(m => m.ProjectName)').someMethod();
</script>

我可以使用这样的东西吗?我不想使用CSS类来触发它,因为我想将它放在编辑器模板中,我不希望代码为每个文本框的每个类实例执行。我想让它为一个元素执行。

1 个答案:

答案 0 :(得分:2)

ASP.NET MVC Futures程序集(Microsoft.Web.Mvc)中有Html.NameFor / Html.IdFor个助手,您可以通过NuGet进行操作,其工作方式与使用lambda / expressions而不是literal的方式完全相同字符串属性名称。