Knockout.js и MVC
Просто начал играть с нокаутом. Джейс, который является фантастической картой, Стив действительно хорошо справился с этим. Одна вещь, которую я, похоже, не могу сделать в данный момент, - это использовать ее с моими помощниками Html. Итак, для exmaple у меня есть:
<%: Html.TextBoxFor(model => model.Division) %>
но я бы использовал для этого привязку данных, но в тот момент, когда я не могу получить атрибут "привязка данных" к помощнику. Я использовал атрибуты до таких, как @class, Id и т.д., Но это сложно из-за - любых идей. Ive пытался:
<%: Html.TextBoxFor(model => model.SupplierName, new { data-bind = "SupplierName"}) %>
и
<%: Html.TextBoxFor(model => model.SupplierName, new { "data-bind"" = "SupplierName"}) %>
но не радость. мы сильно используем помощники редактора и текстового поля, и я бы очень хотел их интегрировать в Item с нокаутом.
Любая помощь, которую многие притягивают
Ответы
Ответ 1
Это должно работать:
<%: Html.TextBoxFor(model => model.SupplierName, new { data_bind = "SupplierName"}) %>
Имена переменных не могут содержать дефис (-), но если вы используете знак подчеркивания (_) в атрибуте HTML, он автоматически преобразуется в дефис при его "рендеринге".
Ответ 2
Вы можете указать атрибуты как анонимный объект или как словарь. В этом конкретном случае следует использовать словарь:
<%: Html.TextBoxFor(m => m.SupplierName, new Dictionary<string, object> { { "data-bind", "SupplierName" } }) %>
Ответ 3
Я использовал Джима в качестве основы для моего решения MVC 4.
Джим:
<%: Html.TextBoxFor(model => model.SupplierName, new { data_bind = "SupplierName"}) %>
Моя:
@Html.TextBoxFor(model => model.SupplierName, new { data_bind = "value: SupplierName" })
Ответ 4
См. Использование Html.TextBoxFor с классом и настраиваемым свойством (MVC) для того, как это сделать в MVC3. Im используя MVC2, поэтому вышеприведенный ответ был для меня подходящим