2

我得到了一个带有以下代码的 aspx 页面调用 ListArticles:

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

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

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

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

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

有办法处理吗?

4

3 回答 3

1

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

于 2010-01-20T07:57:13.790 回答
0

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

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

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

于 2010-01-20T04:35:02.010 回答
0

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

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

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

于 2010-01-20T04:51:43.750 回答