2010-11-23 9 views
0

私はMVCを初めて使い、AJAX呼び出しとモデルの検証のために頭を下げようとしています。単一テキストボックスとのリンクと表示を提供していますPartialView、AJAX、およびモデル検証属性をASP.NET MVCでどのように活用できますか?

Aコントローラのアクションを:ここに私が持っているものです。ビューは次のようになります。

<div> 
... 
<input type="text" name="registration" value=""/><a id="checkRegoLink" href="#">Check rego</> 
... 
</div> 

checkRegoLinkはするPartialViewResultを提供していますアクションに$アヤックス()POST呼び出しを、行います。

$.ajax({ 
    url:"/Entry/CheckRego", 
    type: "POST", 
    data: {...stuff...}, 
    success: function (data, status, request){ 
    $("#target").html(data); 
    }, 
}); 

するPartialViewResultは、強く型付けされた部分図_CreateEntryを提供しています。そのビューのモデルには、さまざまなプロパティーの属性がいくつかあります([Required])。ここでは、この部分図の一部抜粋です:

@model namespace.EntryModel 
@{ Html.EnableClientValidation(); } 
@using (Html.BeginForm("CreateEntry", "Entry", FormMethod.Post)) 
{ 
...various entry fields, labels and stuff... 
<input type="submit" value="Add Entry"/> 
} 

私の質問は、私は戻って検証エラーメッセージと完全$("#target")のdivにその部分のビューを返しますか、です。しかし、それは親のレイアウトせずに、検証エラーメッセージと完全partialview自体を、返しますが、それ自身のコースの - 私はreturn PartialView("_CreateEntry",model)を試してみました厳密に型指定されたビューからのPOSTを受け付けてコントローラのアクションで。

アイデアをいただければ幸いです。私は投票して答えを受け入れることで、徐々に良くなっています。私の低い統計を許してください - 私は間違いなく答えを投票し、私が行くようにそれらを受け入れるでしょう。

おかげで、 ダニー。

PS。 MVC 3を使用しています。最新RC

答えて

0

Html.BeginForm()の代わりにAjax.BeginForm()を使用してみてください。使用法を見て、更新するdivを含むさまざまなオプションを指定できるようにする必要があります。手動で行う理由がない限り、なぜ組み込み済みのものを手動で行うのですか?

編集:

あなたは「(#ターゲット」)私の質問は、私は戻って$への部分的なビューがあることを返すか、どのようにある「と言う検証エラーメッセージで完了しDIV。」

次に、あなたが言う、「...それはpartialview自身を返し、検証エラーメッセージを完備し、もちろん、独自の上、親のレイアウトなし。」 < - これはまさにあなたが望むものではありませんか?

は何をしたいことはありませんか? partialviewは検証エラーメッセージで完了しましたか?

+0

はい、あなたは絶対に正しいです - 私は、脳の閉塞のビット以前持っていました。私は最終的にはAjax.BeginForm()を見ていきますが、今は$ .ajax()jqueryコールで手作業で接続しています。 Ajax.BeginForm()をパーシャルビュー内で使用すると、それ以外のdivをターゲットにすることができます。親ビューで? – codedog

+0

それにはわかりません - 試してみてください。 – Jack

関連する問題