gpt4 book ai didi

asp.net-mvc-3 - ModelState.IsValid 带有自定义 View 结果

转载 作者:行者123 更新时间:2023-12-04 06:13:24 27 4
gpt4 key购买 nike

我创建了一个从 ViewResult 继承的自定义 View 结果。在我的 Controller 中,我检查是否 ModelState.IsValid然后返回我的自定义 View 。我发现错误似乎并没有出现在 View 中。这是我的查看结果:

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);
}
}

我在 Controller 上调用的方法:
    public EnrichedViewResult<T> EnrichedView<T>(string viewName, T model){
return new EnrichedViewResult<T>(viewName, model);
}

当我检查时 ControllerContext.Controller.ViewData.ModelStateExecuteResult ModelState 包含我所期望的错误。

[更新]

@Andras 就在现场。我需要从我的 Controller 传递 ViewData 而不仅仅是一个模型。最简单的方法是获取我的基本 Controller 的 ViewData 属性(与 ASP.NET MVC 用于 ViewResult 辅助方法的属性相同。我将自定义 ViewResult 更改为接受 ViewDataDictionary 和我的辅助方法如下:
    public EnrichedViewResult<T> EnrichedView<T>(string viewName, T model){
if (model != null) {
ViewData.Model = model;
}
return new EnrichedViewResult<T>(viewName, ViewData);
}

最佳答案

我认为你应该传递一个 ViewData反对你的结果;因为那是 ModelState 的容器;不仅仅是模型。通常,您然后通过使用 Controller 的 ViuewData 作为起点,在模型中写入(检查基本 Controller )来快捷地创建/传递 ViewData。

从这个代码它没有任何方法ModelState可以使它的 View 。

关于asp.net-mvc-3 - ModelState.IsValid 带有自定义 View 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522791/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com