Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 ModelState.IsValid与自定义视图结果一致_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 ModelState.IsValid与自定义视图结果一致

Asp.net mvc 3 ModelState.IsValid与自定义视图结果一致,asp.net-mvc-3,Asp.net Mvc 3,我创建了一个从ViewResult继承的自定义视图结果。在我的控制器中,我检查ModelState.IsValid是否有效,然后返回我的自定义视图。我发现这些错误似乎没有进入视图。以下是我的查看结果: public class EnrichedViewResult<T> : ViewResult { public EnrichedViewResult(string viewName, T model) { this.ViewName = view

我创建了一个从ViewResult继承的自定义视图结果。在我的控制器中,我检查ModelState.IsValid是否有效,然后返回我的自定义视图。我发现这些错误似乎没有进入视图。以下是我的查看结果:

public class EnrichedViewResult<T> : ViewResult
{
    public EnrichedViewResult(string viewName, T model)
    {   
        this.ViewName = viewName;
        this.ViewData.Model = model;
    }

    public override void ExecuteResult(ControllerContext context)
    {
        base.ExecuteResult(context);
    }
}

我认为您应该将
ViewData
对象传递给您的结果;因为那是
ModelState
的容器;不仅仅是模型。通常,然后通过使用控制器的ViuewData作为起点,在模型中写入(签出基本控制器),来快捷地创建/传递ViewData


从这段代码来看,它没有任何方法
ModelState
可以进入视图。

感谢您的更新!非常有用!
    public EnrichedViewResult<T> EnrichedView<T>(string viewName, T model){
        return new EnrichedViewResult<T>(viewName, model);
    }
    public EnrichedViewResult<T> EnrichedView<T>(string viewName, T model){
        if (model != null) {
            ViewData.Model = model;
        }
        return new EnrichedViewResult<T>(viewName, ViewData);
    }