2017-09-25 13 views
0

フォームがinput type="submit"です。ブラウザでは、送信は何もしません。開発者ツールの[ネットワーク]タブには何も表示されません。開発者ツールのエラーもありません。ASP.NET送信ボタンが機能しません

私のフォームは以下のようになります。

<div id="app"> 
    <div class="section" id="msform"> 
     @using (Ajax.BeginForm("ClubApplication", "Mining", new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = "app" })) 
     { 
      @Html.AntiForgeryToken() 
      @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
      <fieldset> 
       <div> 
        @Html.LabelFor(m => m.Name, new { @class = "col-md-2 control-label" }) 
        @Html.TextBoxFor(m => m.Name, htmlAttributes: new { @class = "form-control" }) 
       </div> 
       <input type="button" name="next" class="next action-button" value="Weiter" /> 
       <p style="color:#d7d7d7">* Pflichtfelder</p> 
      </fieldset> 
      @* 
       More Fieldsets... 
      *@ 
      <fieldset> 
       @Html.TextAreaFor(model => model.Intrests, htmlAttributes: new { @class = "control-label col-md-2 materialize-textarea form-control", id = "textarea", rows = "4", }) 
       <input type="button" name="previous" class="previous action-button" value="Zurück" /> 
       <input type="submit" id="submitButton" name="submit" class="submit action-button" value="Abschicken" /> 
       @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
      </fieldset> 
     } 
    </div> 
</div> 

サーバー側(デバッグモードで呼び出されることはありません):

[HttpPost] 
public ActionResult ClubApplication(ClubApplication application) 
{ 
    if (ModelState.IsValid) 
     return View(application); 

    return View(application); 
} 

完全なコードは、あなたがする必要がある(CryptoWorld.Academy/Miningですでに住んされますフォームを見るには登録してください)。

投稿ボタンをクリックしたときにフォームが何もしていないのを誰かが知っていれば、とてもいいですね。

+0

ajaxフォームの送信が必要ですか?もしそうでなければ、 'Ajax.BeginForm'を' Html.BeginForm'に置き換えます。 ajaxの動作が必要な場合は、ブラウザのコンソールで問題の原因となっている可能性のあるスクリプトエラーを確認してください。 – Shyju

+0

@Shyju私は本当にそれを必要としませんが、Html.BeginForm(標準HTMLフォーム)も動作していません。私はajaxを使用する前にそれを持っていて、ajaxが機能すると思っていました。しかし、どちらもいけません。 – Alex

+0

@Shyjuコンソールにもエラーはありません – Alex

答えて

0

"Ajax.BeginForm()"を使用すると、フォームはJavaScriptを使用して送信されます。共有ビューで "_Layout.cshtml"を変更する必要があります。そのため、JavaScriptファイル "jquery.unobtrusive-ajax.min.js"をポストバック時のajaxフォームの送信依頼を処理するために追加してください。

+0

jquery.unobtrusive-ajaxを_Layoutに追加しましたが、まだ動作していません。私は標準の投稿フォームでajaxに切り替える前に同じ問題がありました。 – Alex

+0

ブラウザのコンソールでエラーが表示されているかどうかを確認しますか?その問題を解決してください。 –

+0

質問に書いたように、コンソールにエラーはありません。私はCryptoWorld.Academy/Miningに登録すれば(メールとpwだけ)、それが送信していないことがわかります – Alex

0

これは、POSTメソッドに送信するフォームデータが、パラメータとして予期しているオブジェクトと一致しないために発生する可能性があります。

デベロッパーツールを開こうとします(Chromeを使用することをお勧めします)。[ネットワーク]タブに何が投稿されているかを確認してください。ネットワークウィンドウのメソッド名をクリックし、下にスクロールしてフォームデータを表示します。

これは、null不可能なプロパティを含め、モデルに正確に一致する必要があります。

関連する問題