Мой объект модели имеет свойство int с именем SpecialProjectId. Это свойство соответствует окну выбора. Я использую опцию по умолчанию в поле выбора. Однако, когда я отправляю форму со значением по умолчанию, ModelState.isValid остается ложным, потому что опция выбора по умолчанию имеет значение = "", и по какой-то причине связыватель по умолчанию НЕ привязывает 0 к SpecialProjectId, когда находит "" в качестве значения для формы поле SpecialProjectId. Ниже приведен весь код, который я мог бы включить. Пожалуйста помоги. Примечание: я использую asp.net mvc 2.0.0 и System.ComponentModel.DataAnnotations для проверки.
// как я создаю поле выбора
<%= Html.DropDownList("SpecialProjectId", "* Select One *") %>
// что создано помощником
<select id="SpecialProjectId" name="SpecialProjectId">
<option value="">* Select One *</option>
<option value="1">sp</option>
<option value="3">extra special project</option>
</select>
// мой метод действия
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add([Bind(Exclude="Id, DateAudited")]AuditModel auditModel) {
try {
if (!ModelState.IsValid) {
return View("AuditForm", auditModel);
}
//...add audit code...
// мой модельный объект
using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;
using Iesi.Collections;
public class AuditModel
{
public virtual int Id {get; set;}
//NOT REQUIRED!!!//
public virtual int SpecialProjectId {get; set;}
[Required]
public virtual int AccountId {get; set;}
[Required]
public virtual DateTime DateReceived {get; set;}
}