public class InventoryEventViewModel{
public int DestinationId { get; set; }
public int EventType { get; set; }
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Save(InventoryEventViewModel viewModel)
{
//added a breakpoint here
if (!ModelState.IsValid)
{
//do something
}
}
在剃刀视图中
<select name="DestinationId" id="DestinationId">
<option>Select Destination</option>
<option value="1">A</option>
<option value="2">B</option>
</select>
$('#DestinationId').val(@Model.DestinationId)
->返回0
DestinationId的类型为int,因此其默认值为0,当我提交表单时,我在ActionResult行的下方添加了一个断点以查看viewModel内容,然后发现viewModel.DestinationId为0,因此ModelState.IsValid
返回{ {1}}。但是,如果我删除此行true
,那么$('#DestinationId').val(@Model.DestinationId)
的默认值为空白,但是在我的断点viewModel.DestinationId仍然为0,但是$('#DestinationId')
返回ModelState.IsValid
时,我我开始认为false
实际上不是指ModelState
的状态。那两者之间是什么关系?