验证模型状态而不传递模型

时间:2019-04-10 13:41:26

标签: asp.net-mvc-4

我想使用以下代码验证模型

if (ModelState.IsValid)
  {

  }

问题在于,当我将模型对象传递给控制器​​动作时,它可以正常工作,但是当我使用以下代码调用控制器动作时

public ActionResult Save()
{
}

然后我的模型状态总是返回true。所以请向我说明是否可以使用上面的代码检查ModelState.IsValid。在我的情况下,保存方法是常见的,它是从多个控制器调用的,因此模型不是固定参数。请让我知道如何验证模型。

2 个答案:

答案 0 :(得分:0)

MVC使用模型来提取验证属性,作为验证手段。您可以直接在控制器中显式调用ValidateModel()TryValidateModel(),但是再次使用模型验证属性来验证模型。如果您未明确使用模型,则可以直接访问表单,也可以手动验证输入,然后使用以下方法添加适当的模型验证错误:

ModelState.AddModelError("PropertyName", "ErrorMessage");

或根据应用的结构使用此技术:How to add ModelState.AddModelError message when model item is not binded

答案 1 :(得分:0)

ModelState.Clear();
Validate(model);
if (ModelState.IsValid)
{
   // Do something
}