2017-09-25 130 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表單提交嗎?如果不是,用'Html.BeginForm'替換'Ajax.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表單提交請求。

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> 
+0

我現在添加了jquery.unobtrusive-ajax到_Layout,但它仍然無法正常工作。在使用標準帖子表單切換到ajax之前,我遇到了同樣的問題。 – Alex

+0

檢查瀏覽器控制檯中是否顯示任何錯誤?解決這個問題..如果有的話。 –

+0

正如我在問題中所寫的,控制檯中沒有錯誤。我的意思是如果你在CryptoWorld.Academy/Minein註冊(只是郵件和密碼),你可以看到從那裏沒有提交 – Alex

0

這可能是由您發送到POST方法的表單數據與您期望的對象不匹配作爲參數引起的。

嘗試打開開發者工具(我更喜歡使用Chrome),並且對被公佈在網絡選項卡檢查。點擊網絡窗口中的方法名稱並向下滾動查看錶單數據。

這應該完全符合您的模型,包括任何非空的屬性。