【问题标题】:Extending PartialViewResult, Model isn't validated?扩展 PartialViewResult,模型​​未验证?
【发布时间】:2013-10-13 10:56:41
【问题描述】:

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

我的模型和状态码已按预期设置,但我的模型未经过验证。他们是否需要额外的步骤来确保我的模型得到验证?感觉就像我在管道中挂错了地方(因为太晚了),模型应该在传递给结果之前已经过验证,但我不是 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);
    }
}

任何想法都非常感谢。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我怀疑验证比结果早,我看看过滤选项,谢谢反馈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2019-01-11
    • 1970-01-01
    • 2020-07-16
    • 2012-02-24
    • 1970-01-01
    相关资源
    最近更新 更多