0

私はASP.Net MVCを使用しており、フォームの検証に控えめなjavascriptを実装しています。私は実際の提出がサーバー上で処理される前に、フォームが再ロードされ、送信ボタンを押したときにフォームを提出する前に目立たないJavaScriptのデータ入力フォームを再読み込みします。

@{ 
    AjaxOptions options = new AjaxOptions 
    { 
    HttpMethod = "Post", 
    LoadingElementId = "ProcessingMessageContainer", 
    Url = @Model.SaveUrl, 
    OnBegin = "OnBegin", 
    OnSuccess = "OnSaveSuccess", 
    OnFailure = "OnSaveFailure", 
    OnComplete = "OnComplete", 
    }; 
} 
<div id="DataEntryFormContainer"> 
    @using (Ajax.BeginForm(options)) 
    { 
     [form here] 
    } 
</div> 

問題がある:ここに私のコードです。だから、それは悪いユーザー体験です。フォームデータはサーバーに配信され、それに応じて処理されます。ユーザーが送信ボタンを押した後、データ入力フォームを再ロードしないようにするにはどうすればよいですか?ありがとう。

答えて

0

私はそれを考え出しました。私は何とかボタンを送信するために2つの異なるアクションをバインドしました。フォームを提出し、元のページをリクエストしていました。私は火かき棒を使ってコンソールを見てそれを捕まえました。フォームを提出するたびに、私は2つのリクエストをサーバーに送信しました.1つはフォームの送信用、1はフォームの取得用です。誰もが助けてくれてありがとう。

0

Web.configファイルでクライアント検証と控えめなJavaScriptをオンにしていないようです。

あなたがWeb.configファイルに次の行の両方を持ってダブルチェック:

<add key="ClientValidationEnabled" value="true"/> 
<add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
+0

返信ありがとうございますが、これらの値はWeb.configで設定されています。必要なフォーム要素を記入しないと、検証が機能してキャッチします。私は完全に有効なフォームを提出する何らかの理由で、フォームがリロードされ、テキストボックスの値がクリアされます。 –

+0

ああ。あなたのセーブコントローラーアクションから何かを返すのですか?あなたは置き換え以外の何かに挿入モードを設定して、それが役立つかどうか試してみることができますか? –

関連する問題