扩展PartialViewResult,模型​​未经验证?

时间:2013-10-13 10:56:42

标签: c# asp.net-mvc-4 model-validation viewresult

我有一个扩展PartialViewResult的课程,在本课程中我通过Response.StatusCode设置ViewData和模型。

我的模型和状态代码正如我所期望的那样设置,但我的模型未经过验证。是否需要他们的额外步骤来确保我的模型得到验证?感觉就像我已经在管道中错误地连接到了错误的地方(因为太晚了),模型应该在传递给结果之前已经过验证,但我不是100%。

这是班级:

public class PartialViewResultWithErrorCode<T> : PartialViewResult where T : class
{
    private readonly HttpStatusCode statusCode;
    private readonly T model;

    public PartialViewResultWithErrorCode(HttpStatusCode statusCode, string viewName, T model)
    {
        this.statusCode = statusCode;
        this.model = model;
        ViewName = viewName;
    }

    public override void ExecuteResult(ControllerContext context)
    {
        context.HttpContext.Response.StatusCode = (int)statusCode;
        ViewData = new ViewDataDictionary(model);
        base.ExecuteResult(context);
    }
}

任何想法都非常感激。

1 个答案:

答案 0 :(得分:0)

可能为时已晚。 PartialViewResult在InvokeActionResultWithFilters期间执行。

之前发生了ModelValidation。您可以创建一个ActionFilter并尝试在OnActionExecuting中实现相同的功能,从而为您提供更好的结果。