0

我有一个扩展的类,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);
    }
}

任何想法都非常感谢。

4

1 回答 1

0

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

ModelValidation 在此之前已经发生过。您可以创建一个 ActionFilter 并尝试在 OnActionExecuting 中实现相同的目标,这会给您带来更好的结果。

于 2013-10-13T11:30:30.443 回答