У меня есть требование создать шаблон редактора в ASP.NET для модели типа Boolean
. Шаблон должен состоять из одной кнопки, которая будет отображать либо '=', либо '!=' в качестве значения. Например, логическая кнопка
Когда пользователь нажимает кнопку, он должен инвертировать логическое значение и отправить форму.
Я инициирую шаблон этой строкой,
@Html.EditorFor(m => m.Negate, "MyBooleanTemplate")
У меня есть собственный шаблон редактора, если я использую TextBox в качестве ввода и ввожу False или True, когда форма отправляет модель, которая получает новое значение.
@model Boolean
@Html.TextBoxFor(m => m)
Однако, когда я пытаюсь реализовать пользовательский шаблон, модель никогда не улавливает изменение значения.
@model Boolean
@{
string propertyName = Html.ViewData.ModelMetadata.PropertyName;
string id = Html.IdForModel();
string displayValue = Model ? "!=" : "=";
string currentValue = Model.ToString();
string changeValue = (!Model).ToString();
}
<button type="button" id="@id" name="@propertyName" value="@currentValue" onclick="this.value = '@changeValue'; this.form.submit();" class="btn btn-sm">@displayValue</button>
Правильно ли я понимаю, что мне нужен элемент с атрибутами id, name и value, заполненными для работы привязки модели?