.NET MVC 5 Ajax调用无法在post后显示javascript消息
我在.NET MVC 5应用程序中制作了如下表单:.NET MVC 5 Ajax调用无法在post后显示javascript消息,javascript,jquery,ajax,asp.net-mvc,asp.net-mvc-4,Javascript,Jquery,Ajax,Asp.net Mvc,Asp.net Mvc 4,我在.NET MVC 5应用程序中制作了如下表单: @using (Ajax.BeginForm("ChangePassword", "User", new { area = "UserSettings" }, new AjaxOptions { HttpMethod = "POST", OnSuccess = "alert('success');" //This will execute once the Ajax call is finished. }, null
@using (Ajax.BeginForm("ChangePassword", "User", new { area = "UserSettings" }, new
AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "alert('success');" //This will execute once the Ajax call is finished.
}, null))
{
@Html.TextBoxFor(m => m.Password, new { placeholder = "Password", @class = "form-control", @type = "password" })<br />
@Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger", @style = "float:right;" })
@Html.TextBoxFor(m => m.PasswordConfirm, new { placeholder = "Confirm password", @class = "form-control", @type = "password" })<br />
@Html.ValidationMessageFor(model => model.PasswordConfirm, "", new { @class = "text-danger", @style = "float:right;" })
<button type="submit" class="btn btn-primary">Change Password</button>
}
一旦呼叫结束,页面就会刷新,这不应该发生,但它应该只显示成功消息?我做错了什么?对于Ajax请求,请在BundleConfig.cs中创建以下捆绑包
public static void RegisterBundles(BundleCollection bundles)
{
//Create Your other bundles here
//Create your Jquery validate bundle
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/Assets/jquery.validate.min.js",
"~/Scripts/Assets/jquery.validate.unobtrusive.min.js",
"~/Scripts/Assets/jquery.unobtrusive-ajax.min.js"
));
}
在您的_Layout.cshtml中。将此捆绑包包括为:
@Scripts.Render("~/bundles/jqueryval")
请确保,jQuery必须包含在此捆绑包之前。请注意,在上面的代码块中,javascript文件的路径是虚拟的。你应该给出你自己的路。必须包括以下JS文件:
希望它有帮助:)从下面的链接中包括不引人注目的Ajax 注意:不要同时包含jquery.unobtrusive-ajax.min.js和jquery.unobtrusive-ajax.min.js,只包含一个(js/min.js)文件 以下文件不会对您和您的问题产生任何影响 1.jquery.validate.min.js
2.jquery.validate.unobtrusive.min.js确保在layout@EhsanSajjad对于此选项,我应该引用哪些选项?@EhsanSajjad我已经包含jquery、jquery.validate.min.js和jquery.validate.unobtrusive.js…您在使用AJAX表单时是否包含了-->这个选项,有一个选项可以说用结果替换内部表单内容,但这意味着您必须从action方法返回PartialView。
@Scripts.Render("~/bundles/jqueryval")