Подтвердить что ты не робот

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 с нокаутом.

Любая помощь, которую многие притягивают

4b9b3361

Ответ 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" })