在void方法中没有模型的MVC服务器端字段验证

时间:2016-12-27 13:35:02

标签: c# asp.net-mvc validation

请帮助,有没有办法在void方法中组织服务器端文本框字段验证?以下代码部分:

主要无效方法:

// Add new row into SQL DB
public void AddNewRow(MyClass obj)
{
    bool fieldsValid = CheckFields(obj);

    if (fieldsValid)
    { ... // It's Ok, save new row
}

// Check fields values method
public bool CheckOTKFields(MyClass obj)
{
    bool result = true;

    if (obj.ObjectProperty % 2 == 0 || !(obj.ObjectProperty is int))
    {
        @ViewBag.Otl1_DividingError = "Error description";
        result = false; // Flag to false
    }
    ... // Other properties
    return (result);
}

我尝试过@ViewBag变量,但是当页面加载\刷新时有很多困难。你可能知道更好的方法吗?或者我只能使用客户端(js \ jQ)验证?

1 个答案:

答案 0 :(得分:1)

如果您从POST操作返回响应,则可以设置:

ModelState.AddModelError("", "Error Description");

第一个参数是指模型的特定属性,但空字符串有效。 POST的响应将显示在验证摘要结果中。

困难在于它无法撤消您之前采取的任何行动;你必须首先确保对所有项目进行验证,然后一旦安全继续进行你想要执行的任何操作。