У меня возникла проблема с обновлением обнуляемого значения bool с использованием TryUpdateModel.У меня есть шаблон, созданный для обработки значений следующим образом:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.Boolean?>" %>
<% if (ViewData.ModelMetadata.IsNullableValueType) { %>
<%= Html.DropDownListFor(model => model, new SelectListItem[] { new SelectListItem() { Text = "", Value = "null"},new SelectListItem() { Text = "Yes", Value = "true"}, new SelectListItem() { Text = "No", Value = "false" }})%>
<% } else { %>
<%= Html.CheckBoxFor(model => model.Value)%>
<% } %>
Мой взгляд выглядит следующим образом:
<%=Html.EditorFor(model => model.TestField) %> //which looks/acts correctly
Типы базы данных SQL Server также правильно определены как обнуляемый бит.
Мой код прост:
var so = new SomeObject();
if (ModelState.IsValid)
{
//gets to here
if (TryUpdateModel(so))
{
//never gets here
}
}
Ошибка для ModelState в этом поле: «Нулевое значение недопустимо для TestField.»
Это кажется довольно простым, но я не смог ничего найти по этому поводу.Любая помощь будет принята с благодарностью.
Приветствия,
Брайан