[英]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.