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-mvc – 重定向到操作,需要传递数据
- asp.net-membership – 如果我使用aspnet_membership有什么
- IIS ASP.NET WebApi在请求同一台服务器时死锁
- ASP.NET core Web中使用appsettings.json配置文件的方法
- Asp.net core 使用log4net作为日志组件,记录日志到本地。
- asp.net-mvc – Nullable DateTime在调用操作时从不绑定参数
- asp.net-mvc – 实体框架 – 无法创建x类型的常量值.在此上
- ASP.NET 4.0中的不同服务器和客户端缓存策略
- asp.net-mvc-3 – MVC 3模型属性未在html.action调用的部分
- asp.net-mvc-2 – 带有JavaScript变量的ASP.NET MVC 2 Html
- asp.net-mvc – 在C#中,我如何从一个字节[]中知道
- 在asp.net中验证字符串是否为json
- asp.net-mvc – asp.net mvc:如何模拟Url.Conte
- asp.net – 无法加载文件或程序集’System.Net.H
- asp.net – IIS Express(WebMatrix)打开外部连接
- asp.net-mvc – Asp.Net MVC和HTML5 PUSH通知
- asp.net – 如何使用.net用户控件创建Umbraco内容
- asp.net-mvc – ASP.NET MVC3 – 3层设计 – 事务
- asp.net-mvc – Web Essentials浏览器链接在Visu
- .net – 为每个用户创建子域