MVC3 - DataAnnotation - имя свойства - PullRequest
0 голосов
/ 29 ноября 2011

Я много пишу в jQuery для своего проекта, но мне нужна помощь в получении имен параметров, сгенерированных Helper с суффиксом For.

Когда я делаю:

Html.TextBoxFor(model => model.SomeTextParameter)  

inчистый HTML есть сгенерированный идентификатор: "SomeTextParameter".Я хотел бы получить его идентификатор автоматически генерируется в каждом месте, где я использую его в jQuery.Как это сделать?

Или я всегда могу вручную указать его имя с помощью помощника без «For»:

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

В этом случае я могу легко управлять идентификаторами, но когда я хочучтобы использовать аннотации данных для меток, я обнаружил еще одну проблему с подключением [Display(Name = "Really important text parameter")] к Html.Label("SomeTextParameterLabel", <what to enter here?>).

Когда я использую:

Html.LabelFor(model => model.SomeTextParameter)

, он привязывается к отображаемому имени, поэтому отображаетсяЯ хочу.

Есть идеи, как решить первую или вторую проблему?

Ответы [ 2 ]

1 голос
/ 18 июля 2013
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>
0 голосов
/ 29 ноября 2011

Вы можете написать свой собственный помощник, чтобы получить сгенерированные идентификаторы.Это должно быть полезно https://stackoverflow.com/a/5419261/472126

После этого вы сможете получить сгенерированный идентификатор с помощью этого

<%: Html.ClientIdFor(model => model.SomeTextParameter) %>
...