繁体   English   中英

ASP.NET MVC错误使用$ .post(),此方法将另一个控制器名称添加到调用中

[英]ASP.NET MVC error to use $.post(), this method put another controller name to the call

我有一个ASP.NET MVC应用程序。 当我使用$.pos()时遇到问题。 此方法在第一个参数中接收控制器名称和操作名称,例如"Controller/Action" 问题是在某些地方无条件地post方法将控制器名称添加到post方法。 我可以用萤火虫观察到这一点。 以下是我的源代码示例:

$.post("Customer/Create", {}, function (data) {
    $("#Detalle").html("");
    $("#Detalle").append(data);
});

无条件呼叫包含"Customer/Customer/Create" 我可以在firebug中观察它,这会导致错误,因为"Customer/Customer/Create"不存在。 问题是什么? 我已经看到,如果我使用$.ajax().load我没有这个问题,但我更喜欢使用$.post而不是$.ajax因为这将导致一个很大的变化。 有人能解释一下这个问题是什么吗? 谢谢各位朋友。

而不是这个:

$.post("Customer/Create", {}, function (data) { $("#Detalle").html(""); $("#Detalle").append(data); });

试试这个,添加你url的斜线开头:

$.post("/Customer/Create", {}, function (data) { $("#Detalle").html(""); $("#Detalle").append(data); });

要避免与斜杠相关的错误或正确的路径最佳方式,请使用如下所示的Url:

  $.post('@Url.Action("Create","Customer")', {}, function (data) {
            $("#Detalle").html("");
          $("#Detalle").append(data);
  });

或者如果使用的是经验js文件而不是管理网址的最佳方式。在布局或视图中创建全局变量,如下所示:

  <Script>
    var customerUrl = {
    Create: '@Url.Action("Create","Customer")'
    //Append mor url accoring to your requirement.
   }
 </script>

然后在你的外部js文件中使用以下:

  $.post(customerUrl.Create , {}, function (data) {
            $("#Detalle").html("");
          $("#Detalle").append(data);
  });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM