Asp.Net Mvc - 渲染局部视图 - 管理错误

时间:2010-01-20 03:47:52

标签: asp.net-mvc renderpartial

我使用以下代码获得了一个aspx页面调用ListArticles:

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

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

在我的控制器中,我得到了类似的东西:

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

所以问题是return View();生成的视图无法呈现良好的视图。应该在创建局部视图中突出显示错误时呈现ListArticles视图,但它只显示Create.ascx视图。

有办法解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您确定已提供所有代码吗?

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

所以你需要返回视图(文章)或类似的东西。出错时,您仍然需要返回用于首先渲染视图的集合或模型。

答案 2 :(得分:0)

您可能将操作名称设置为“创建”,这就是它仅显示的原因 Create.ascx视图。 请尝试使用以下代码

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

你的Create.ascx中应该有Html.ValidationMessage()来查看验证错误