Я использую флажок на форме ASP.NET MVC выглядеть примерно так:asp.net MVC флажок несогласованность
<%=Html.CheckBox("AgreeToRules", Model.AgreeToRules)%>
Свойство AgreeToRules на модели является логическим значением. Во время тестирования все это работало нормально. Тем не менее, теперь, когда мы пошли жить с этим приложением, я вижу, относительно небольшое, но значительное количество ошибок со следующими сообщениями:
System.Web.HttpUnhandledException: исключение типа системы». Web.HttpUnhandledException ' был брошен. ---> System.InvalidOperationException: Преобразование параметра из типа 'System.String' на тип Ошибка «System.Boolean». Для получения дополнительной информации см. Внутреннее исключение . ---> System.FormatException: Y не является действительным значением для Boolean. ---> System.FormatException: Строка не была признана действительной булевой.
Это, кажется, случается, когда вид двигателя пытается визуализировать форму после того, как должность, а значение флажка, который возвращается из ValueProvider выглядит следующим образом:
Y, ложные
ИЛИ
N, ложная
HTML, который отображается в первоначальном виде выглядит следующим образом:
<input id="AgreeToRules" name="AgreeToRules" type="checkbox" value="true" />
<input name="AgreeToRules" type="hidden" value="false" />
Во время тестирования, я ожидал (и показал) посланное значение выглядеть следующим образом:
истинные, ложные
если проверка или
фа lse
если не проверено. Итак, откуда взялись N и Y?
Я добавил агента пользователя в список информации, возвращаемой обработчиком ошибок, и он показывается (пока), что все ошибки происходят из-под Windows XP с FF 3.0.10, но это именно то, что я тестировал, и во время тестирования проблема не возникала.
Любые мысли?
Y и N? Разве это не то, что использует Microsoft Jet (используется Access) для своих логических полей? – Powerlord
Возможно, но поскольку это не имеет никакого отношения к Jet или Access, я не уверен, что это релевантно. – Chris
Переходя к сообщению, которое я положил в теперь удаленном ответе: я просто проверил спецификацию HTML, и значение по умолчанию для флажка подразумевается как «включено», значение не задано; Я понятия не имею, откуда можно получить Y или N, если это не ASP.NET MVC. – Powerlord