jqueryajax调用将解析为当前控制器文件夹,而不是根文件夹
我想我在JQuery和ASP.NETMVC中发现了一些非常奇怪的东西 如中所述,我有以下JQuery代码:jqueryajax调用将解析为当前控制器文件夹,而不是根文件夹,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我想我在JQuery和ASP.NETMVC中发现了一些非常奇怪的东西 如中所述,我有以下JQuery代码: $(function () { $("#username").click(function () { $.getJSON("ViewRecord/GetSoftwareChoice", { username: '123' }, function (data) { alert(data);
$(function () {
$("#username").click(function () {
$.getJSON("ViewRecord/GetSoftwareChoice", { username: '123' },
function (data) {
alert(data);
});
});
});
ViewRecord
是控制器,GetSoftwareChoice
是操作方法。但为此生成的URl是
http://localhost/ViewRecord/ViewRecord/GetSoftwareChoice?username=123
太神奇了,不是吗
为什么会这样
这是我的路线:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
尝试将此用作您的URL:
$.getJSON("/ViewRecord/GetSoftwareChoice", // etc
请注意前缀正斜杠。jQuery对MVC、控制器或操作一无所知。您告诉它:“这里是一个相对URL-获取当前页面的URL并将相对URL附加到其中。”您可能想说:
var newURL = "http://" + document.domain + "/ViewRecord/GetSoftwareChoice";
如果没有前导斜杠,URL的路径是本地路径,它是相对于页面路径解析的。就像您可能放入HTML中的任何其他URL一样。他们在您前面的问题中为您提供了答案。为什么要问一个新的?