我有一个扩展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);
}
}
任何想法都非常感激。
答案 0 :(得分:0)
可能为时已晚。 PartialViewResult在InvokeActionResultWithFilters期间执行。
之前发生了ModelValidation。您可以创建一个ActionFilter并尝试在OnActionExecuting中实现相同的功能,从而为您提供更好的结果。