使用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类来触发它,因为我想将它放在编辑器模板中,我不希望代码为每个文本框的每个类实例执行。我想让它为一个元素执行。
答案 0 :(得分:2)
ASP.NET MVC Futures程序集(Microsoft.Web.Mvc)中有Html.NameFor
/ Html.IdFor
个助手,您可以通过NuGet进行操作,其工作方式与使用lambda / expressions而不是literal的方式完全相同字符串属性名称。