asp.net-mvc – AJAX在IIS 7.5中返回404(本地),但在其他IIS中的功能相同
|
在我的MVC应用程序中有AJAX调用我的控制器 Controller/FunctionName
$.ajax({
type: "GET",contentType: "application/json; charset=utf-8",url: '/Controller/FunctionName',.
.
.
)};
使用MVC 4并使用JQUERY Ajax函数,如上面的代码所示.当我从Visual studio运行时,它工作得很好. 我把它解散到服务器机器,正如预期的那样工作正常. AJAX调用中没有发现问题. 现在我试图在我的本地机器IIS中部署它,这与我的服务器版本(IIS 7.5)相同,但是在firebug中为所有的ajax调用获得404. 我验证了构建,甚至我指向我的网络文件夹,我仍然在寻找出了什么问题! 它在其他IIS中工作,所以它不会是一个URL解决问题是我的意图.我错过任何设置或任何及时的想法来解决这将是巨大的. 谢谢 解决方法这是正常现象您已经将url硬编码到您的控制器操作:url: '/Controller/FunctionName', 如果您将应用程序部署在IIS中的虚拟目录中,那么正确的URL应为: url: '/YourAppName/Controller/FunctionName', 这就是为什么你绝对不要在ASP.NET MVC应用程序中硬编码url的原因,但是总是使用URL帮助来生成它: url: '@Url.Action("FunctionName","Controller")',
如果这个AJAX调用是在一个单独的javascript文件中,你不能使用服务器端的帮助器,那么你可以从一些您要AJAXify的DOM元素中读取这个URL. 例如,假设你有一个锚点: @Html.ActionLink("click me","FunctionName","Controller",null,new { id = "myLink" })
你AJAXify: $('#myLink').click(function() {
$.ajax({
url: this.href,contentType: 'application/json; charset=utf-8',type: 'GET',.
.
.
)};
return false;
});
注意我们如何从辅助程序生成的DOM元素中读取url. 结论和2条经验法则: >永远不会在ASP.NET MVC应用程序中硬编码一个url>绝对总是在ASP.NET MVC应用程序中处理url时使用url helpers (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-web-api – 交叉原始SignalR连接在协商后停止
- asp.net-mvc – ASP.NET MVC MultiSelectList,其中所选值未
- asp.net-mvc-5 – 使用FormsAuthenticationTicket的MVC Ide
- asp.net-ajax – 日历扩展程序无法正确显示
- asp.net-mvc – 是否有一种方法来创建一个ActionLink与HTML
- asp.net-mvc – 使用asp.net mvc操作过滤器的奇怪行为Attri
- asp.net-mvc – SignalR和MVC包
- 如果ASP.NET应用程序的CustomErrors设置为Off,有没有办法以
- 在ASP.NET MVC中测试HtmlHelpers
- asp.net – 无法编写输出文件… pdb visual studio 2010
- Asp.net webForm设置允许表单提交Html的方法
- asp.net-mvc-2 – Plus()在MVC中的参数引起404在
- asp.net-mvc-3 – CopyAllFilesToSingleFolderFo
- asp.net-core – ASP .NET Core 1.0 RTM本地化无
- asp.net-mvc – 服务层验证
- asp.net-mvc – Mocking HttpPostedFileBase和In
- 如何在ASP.NET中的多个子域中共享会话?
- asp.net-mvc – 在剃刀视图中启用和禁用文本框(A
- asp.net-mvc-3 – ASP.NET成员资格 – 本地登录,
- asp.net-mvc – 使用Repository/Service Pattern
