【问题标题】:Asp.Net Mvc - Render partial view - Manage errorsAsp.Net Mvc - 渲染局部视图 - 管理错误
【发布时间】:2010-01-20 03:47:52
【问题描述】:

我得到了一个 aspx 页面调用 ListArticles,代码如下:

<% Html.RenderPartial("Create", new Models.Article()); %>

Create 是一个局部视图 (Create.ascx)。

在我的控制器中,我得到了这样的东西:

if (!ModelState.IsValid) { 
     return View();
}

所以问题是return View(); 生成的视图没有呈现好的视图。它应该呈现 ListArticles 视图,同时突出显示 Create partial 视图中的错误,但它只显示 Create.ascx 视图。

有办法解决吗?

【问题讨论】:

  • 改用 Html.RenderAction??
  • 同意马丁。使用 Html.RenderAction 会将所有这些功能封装到它自己的自定义控制器/视图组合中。然后,您可以在此自定义控制器中执行您认为合适的操作。
  • 我尝试改用 Html.RenderAction 并遇到了同样的问题。您是否有任何示例或链接显示如何执行此操作(使用创建)?

标签: asp.net-mvc renderpartial


【解决方案1】:

对于这种情况,我建议您在视图中嵌入一个表单,该表单需要发布并显示您使用 Ajax.BeginForm 而不是部分视图的错误。 Partial Views 更适合展示场景。

【讨论】:

    【解决方案2】:

    你确定你已经提供了所有的代码吗?

    在您的控制器中,您正在返回一个视图,但没有将模型传递给它。

    所以你需要 Return View(Articles) 或类似的东西。如果出现错误,您仍然需要返回最初用于渲染视图的集合或模型。

    【讨论】:

      【解决方案3】:

      您的操作名称可能为“创建”,这就是它只显示的原因 创建.ascx 视图。 试试改用下面的代码

      if (!ModelState.IsValid) { 
           return View("ListArticles");
      }
      

      您应该在 Create.ascx 中有 Html.ValidationMessage() 以查看验证错误

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-08
        • 1970-01-01
        • 1970-01-01
        • 2010-12-06
        • 1970-01-01
        相关资源
        最近更新 更多