Справка по HtmlHelper и htmlAttributes - PullRequest
6 голосов
/ 28 июня 2011

Я довольно новичок в MVC 3 и использую движок Razor.Я использую метод расширения Html.Hidden для вывода элементов ввода типа hidden.Что я также хотел бы сделать, это добавить пользовательский атрибут для хранения динамического значения.У меня сложилось впечатление, что в HTML5 мы можем написать собственные атрибуты html-элемента с префиксом «data-».Я пытаюсь сделать что-то вроде ниже;

@Html.Hidden("hdnID", mymodel.somevalue, new { data-uniqueid = mymodel.somevalue })

в надежде сделать;

<input type="hidden" value="mymodel.somevalue" data-uniqueid="mymodel.somevalue"/>

Часть htmlAttributes ( new {data-uniqueid = mymodel.somevalue} ) выдает ошибку,

«Неверный декларатор члена анонимного типа. Члены анонимного типа должны быть объявлены с назначением, простым именем или доступом к члену»,

Можно ли добавить определяемый пользователем атрибут к элементам html с помощью классов HtmlHelper?

С уважением,

Ответы [ 3 ]

20 голосов
/ 28 июня 2011

Использование:

@Html.Hidden("hdnID", mymodel.somevalue, new { @data_uniqueid = mymodel.somevalue })

Подчеркивание автоматически преобразуется в тире.

0 голосов
/ 30 ноября 2011

Вы можете обойти проверку члена, создав объект словаря. Следующим образом:

@Html.TextBoxFor(model => model.Phone, new Dictionary<string, object>
{
    {
        "data-call-results-target", "#search-results-area" 
    },
    {
        "data-action-path", "/Controler/Method"
    }
})
0 голосов
/ 28 июня 2011

Doh! Я был глупым. Вы не можете иметь '-' в объявлении типа anon:

data-uniqueid = ... должно быть

datauniqueid = ....

В этом случае вам лучше всего написать вручную скрытый ввод:

<input type="hidden" value="@mymodel.somevalue" data-uniqueid="@mymodel.somevalue"/>
...