0

我是 MVC 的新手。我有一个接受来自客户端的请求的 ActionResult,并且我正在尝试使用 MVC 验证和模型绑定魔法。该动作不返回视图,而是按照一定的逻辑重定向到其他动作。

我的问题是有不同类型的请求与不同的模型相关联,并且这些模型是互斥的。

例子:

class Model1
{
    [Required]
    public string PropA;
}

class Model2
{
    [Required]
    public string PropB;
}

ActionResult 内部的逻辑将遵循以下内容:

     If Model1 is valid then RedirectToAction("A")
     Elseif Model2 is valid then RedirectToAction("B")
     Else RedirectToAction("ERROR")

在 ASP.NET MVC4 中实现此类功能或类似功能的最佳实践是什么?

4

2 回答 2

1

您应该能够创建验证上下文并验证控制器中的每个视图模型。您必须为每个视图模型执行以下操作:

var validationResults = new List<ValidationResult>();     
var context = new ValidationContext(myObject);
bool validationPassed = Validator.TryValidateObject(myObject, context, validationResults, true);
于 2013-05-14T20:24:53.090 回答
0

您可以检查模型状态,看看它是否有控制器内部的错误:

bool hasErrors =  ViewData.ModelState.Values.Any(x => x.Errors.Count > 1);

[1] http://msdn.microsoft.com/en-us/library/dd470776(v=vs.108).aspx

[2] http://forums.asp.net/t/1480118.aspx/1

于 2013-05-14T20:21:18.510 回答