Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET MVC 5 Ajax调用无法在post后显示javascript消息_Javascript_Jquery_Ajax_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

.NET MVC 5 Ajax调用无法在post后显示javascript消息

.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

我在.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))
  {
  @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文件:

  • jquery.validate.min.js
  • jquery.validate.unobtrusive.min.js
  • jquery.unobtrusive-ajax.min.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")