2011-10-18 9 views
0

Net MVC 3.0 Project検証の後でのみASP.Net MVC Ajax.ActionLinkを実行する方法?

私のページにはフォームがあり、現在のフォームに別のフィールドセットを追加するAjax.ActionLinkがあります。これは、ユーザーがActionLinkをクリックしている間は繰り返しですフォームにますます多くのフィールドセットを追加し続けます。ここで

は私の問題は、ユーザーがリンクをクリックすると、それは最初だけそれが必要検証が成功したときに、必要なすべてのフィールドに現在のフォームを検証する必要があり

である私のAjaxのアクションリンク

@Ajax.ActionLink("Add Another ERx", "ERxView", "Medication", new AjaxOptions 
{ 
UpdateTargetId = "accordion", 
InsertionMode = InsertionMode.InsertAfter, 
HttpMethod = "POST", 
OnBegin = "destroyAccordion", 
OnSuccess = "createAccordion" 
}, new { @class = "standard button", id = "AnotherErx", onclick = "document.ERxForm.submit();"}) 

ですフォームに新しいフィールドセットを追加します。

私は、これはフォーム検証を発射、しかし、関係なく、検証の、それがフィールドの新しいセットを追加し続けてActionLinkの

onclick = "document.ERxForm.submit();" 

をクリックすると、現在のフォームを検証するために私Ajax.ActionLinkでこのような何かを試してみました形。

いずれかはどのように私は私の質問を読むのに時間がかかっているすべての人のために、この

感謝を達成することができ、私を助けることができます。

答えて

0
OnBegin = "destroyAccordion" 

destroyAccordion関数呼び出し検証関数を作成し、trueまたはfalsを返します。 trueの場合、アクションリンクが実行されます。

1

ほとんどの場合、検証する新しい要素を追加している可能性があります。

$("form").removeData("validator"); 
$("form").removeData("unobtrusiveValidation"); 
$.validator.unobtrusive.parse("form"); 

は、あなたのOnSuccess機能にこれを追加し、検証は、すべての要素のために動作します:あなたはAJAXを介した新しい検証要素を追加する場合、クリアして、すべての検証がそうのように、ページ上の属性を再解析する必要があります元のページに追加されました。

+0

あなたの回答はある程度私を助けます。しかし、この検証が真になるまでコントローラのアクションが呼び出されないようにするにはどうすればよいですか? – HaBo

+1

私はあなたのActionLinkの一環として提出していることを忘れていました。どうして?提出は検証プロセスに干渉します。 ActionLinkから 'onclick'イベントを削除することをお勧めします。なぜなら、私はそれが何の目的であるのかわかりません。それは間違いなく検証プロセスを混乱させます。 – counsellorben

関連する問題