MVC3 - 数据注释 - 属性名称

时间:2011-11-29 09:00:51

标签: asp.net-mvc-3 data-annotations

我在jQuery中为我的项目做了很多编码,但是我需要帮助获取由Helper生成的带有For后缀的参数名称。

当我这样做时:

Html.TextBoxFor(model => model.SomeTextParameter)  
在纯HTML中

生成了id:“SomeTextParameter”。我想在我在jQuery中使用它的每个地方自动生成它的id。怎么做?

或者,我总是可以通过使用没有“For”的帮助器来指定它的名称:

Html.TextBox("SomeTextParameter", this.Model.SomeTextParameter)

在这种情况下,我可以轻松控制ID,但是当我想对标签使用数据注释时,我发现连接[Display(Name = "Really important text parameter")]的另一个问题 Html.Label("SomeTextParameterLabel", <what to enter here?>)

当我使用时:

Html.LabelFor(model => model.SomeTextParameter)

它绑定到显示名称,因此它显示为我想要的。

任何想法如何解决第一或第二个问题?

2 个答案:

答案 0 :(得分:1)

public class LogOnModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [Display(Name = "Remember me?")]
    public bool RememberMe { get; set; }
}

<ol>
    <li>
        @Html.LabelFor(m => m.UserName)
        @Html.TextBoxFor(m => m.UserName)
        @Html.ValidationMessageFor(m => m.UserName)
    </li>
    <li>
        @Html.LabelFor(m => m.Password)
        @Html.PasswordFor(m => m.Password)
        @Html.ValidationMessageFor(m => m.Password)
    </li>
    <li>
        @Html.CheckBoxFor(m => m.RememberMe)
        @Html.LabelFor(m => m.RememberMe, new { @class = "checkbox" })
    </li>
</ol>

答案 1 :(得分:0)

您可以编写自己的帮助程序来获取生成的ID。这应该是有用的https://stackoverflow.com/a/5419261/472126

之后,您应该可以使用此

获取生成的ID
<%: Html.ClientIdFor(model => model.SomeTextParameter) %>