2

次のコードで aspx ページ呼び出し ListArticles を取得しました。

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

Create は部分ビュー (Create.ascx) です。

私のコントローラーでは、次のようなものがあります:

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

したがって、問題は、によって生成されたビューreturn View();が適切なビューをレンダリングしないことです。Create 部分ビューでエラーを強調表示しながら ListArticles ビューをレンダリングする必要がありますが、Create.ascx ビューのみを表示します。

それを処理する方法はありますか?

4

3 に答える 3

1

この状況では、エラーを投稿して表示する必要があるビューにフォームを埋め込むことをお勧めします。部分的なビューの代わりに Ajax.BeginForm を使用します。シナリオを表示するには、部分ビューの方が適しています。

于 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 に答える