use*_*567 19 deployment asp.net-mvc jquery iis-7.5
我在MVC应用程序中对我的控制器进行了AJAX调用
Controller/FunctionName
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: '/Controller/FunctionName',
.
.
.
)};
Run Code Online (Sandbox Code Playgroud)
我正在使用MVC 4并使用JQUERY Ajax
上面代码中所示的功能.当我从Visual Studio运行时它完全正常.
我将它解密到服务器机器,并按预期正常工作.在AJAX调用中没有发现问题.
现在我正在尝试在我的本地机器IIS中部署它,这与我的服务器版本相同,(IIS 7.5)
但我正在获取404
firebug中的所有ajax调用.
我验证了构建,甚至我指向我的网络文件夹,我仍在寻找出了什么问题!
它适用于其他IIS,所以它不会是一个URL解决问题是我的gues.我错过了任何设置或任何及时的想法来解决这个问题会很棒.
谢谢
Dar*_*rov 35
这很正常.您已将url硬编码为控制器操作:
url: '/Controller/FunctionName',
Run Code Online (Sandbox Code Playgroud)
如果在IIS中的虚拟目录中部署应用程序,则正确的URL应为:
url: '/YourAppName/Controller/FunctionName',
Run Code Online (Sandbox Code Playgroud)
这就是为什么你绝对不应该在ASP.NET MVC应用程序中硬编码URL但是总是使用url helper来生成它的原因:
url: '@Url.Action("FunctionName", "Controller")',
Run Code Online (Sandbox Code Playgroud)
如果这个AJAX调用是在一个单独的javascript文件中,你不能使用服务器端助手,那么你可以从一些你是AJAXifying的DOM元素中读取这个url.
例如,假设你有一个锚点:
@Html.ActionLink("click me", "FunctionName", "Controller", null, new { id = "myLink" })
Run Code Online (Sandbox Code Playgroud)
你AJAXify:
$('#myLink').click(function() {
$.ajax({
url: this.href,
contentType: 'application/json; charset=utf-8',
type: 'GET',
.
.
.
)};
return false;
});
Run Code Online (Sandbox Code Playgroud)
注意我们如何从帮助器生成的DOM元素中读取url.
结论和2条经验法则:
归档时间: |
|
查看次数: |
14498 次 |
最近记录: |