我再次努力验证输入。 让我们说我编辑一个客户和字段" name"需要通过
[Required(ErrorMessage = Constants.ErrorMsgNameMissing)]
public string NAME { get; set; }
在模型中。
编辑方法
[HttpPost]
edit(ViewModel vm)
{
// some code here
try
{
UpdateModel(vm);
// some code there
}
catch (Exception e)
{
return View(vm);
}
}
执行UpdateModel(vm)
时,如果名称为空,则抛出异常。然后我的视图显示了Html.ValidationSummary()。到目前为止,非常好。
现在,如果我通过
创建客户[HttpPost]
create(ViewModel vm)
{
if (ModelState.IsValid) { ... }
}
我没有UpdateModel()
方法,因为没有更新的内容。 ModelState.IsValid
似乎每次都会返回true
。即使ViewModel为null。所以我遇到了麻烦。
如何验证?如果出现错误,我该返回什么?
更新:我认为昨天为时已晚。事实上,它确实有效。但我希望有一个例外而忘记了else { ... }
......
答案 0 :(得分:1)
试试这个:
[HttpPost, ValidateInput(true)]
create(ViewModel vm)
{
if (ModelState.IsValid) { ... }
}