![](/img/trans.png)
[英]Error using Ajax.BeginForm when giving a callback parameter for OnSuccess, OnFailure, OnComplete and OnBegin
[英]Ajax.BeginForm OnSuccess, onBegin , OnFailure not firing
不管我尝试什么,没有一种javascript方法都不能正常启动/工作。
[HttpPost]
public JsonResult Errors (string name, string email)
{
//send email
return new JsonResult()
{
Data = new { result = "success" },
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
部分视图
@using (Ajax.BeginForm(
"Errors",
"Home",
new AjaxOptions {
HttpMethod = "POST",
OnSuccess = "onSuccess ",
OnFailure = "OnFailure",
OnBegin = "Begin()" },
new { @class = "form-horizontal", id = "error-form" }))
{
@Html.AntiForgeryToken()
<div class="form-group">
<label>Your name</label>
<input type="text" name="name" class="form-control" value="@name" />
</div>
<div class="form-group">
<label>Your e-mail</label>
<input type="text" name="email" class="form-control" value="@email" />
</div>
<button class="btn btn-success" type="submit" style="margin-bottom:4em;">Send message</button>
}
<div class="form-group" id="thankYou" style="display:none">
<label>Thank you!</label>
</div>
</div>
</div>
</div>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script type="text/javascript">
function Begin() {
alert("b");
}
function onSuccess(data) {
debugger;
alert(data.result);
};
function OnFailure(data) {
debugger;
alert(data.result);
};
$(document).ready(function () {
});
</script>
我得到的只是JSON格式的响应。 见截图 。 没有事件被触发。 有任何想法吗?
Ajax.BeginForm有11个重载...您的参数与任何一个都不匹配。 我假设您要使用此重载 :
BeginForm(AjaxHelper, String, String, RouteValueDictionary, AjaxOptions, IDictionary<String,Object>)
您需要将RouteValueDictionary
添加到您的参数中:
@using (Ajax.BeginForm(
"Errors", // <--action name
"Home", // <--controller
null, // <-- RouteValueDictionary
new AjaxOptions { // <-- AjaxOptions
HttpMethod = "POST",
OnSuccess = "onSuccess ",
OnFailure = "OnFailure",
OnBegin = "Begin()" },
new { // <-- htmlAttributes
@class = "form-horizontal",
id = "error-form" }))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.