我有一张input type="submit"
的表单。在浏览器中,提交不做任何事情。在"网络"开发人员工具中的选项卡我什开发人员工具中也没有错误。
我的表单看起来像这样:
<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 :(得分:0)
当你使用&#34; Ajax.BeginForm()&#34;然后使用JavaScript提交表单。你需要改变&#34; _Layout.cshtml&#34;在共享视图中,所以添加JavaScript文件&#34; jquery.unobtrusive-ajax.min.js&#34;引用它来处理回发后的ajax表单提交请求。
{{1}}
答案 1 :(得分:0)
这可能是由于您发送到POST方法的表单数据与您期望作为参数的对象不匹配而导致的。
尝试打开开发人员工具(我更喜欢使用Chrome)并在网络标签中查看发布的内容。单击网络窗口中的方法名称,然后向下滚动以查看表单数据。
这应该与您的模型完全匹配,包括任何不可为空的属性。