javascript - asp.net MVC 路由 - javascript url 404 错误

标签 javascript asp.net-mvc-3 http-status-code-404 iis-7.5 url-routing

在本地开发我的应用程序 (asp.net mvc3) 时,使用 VS 开发应用程序服务器一切正常。该应用程序位于 localhost/。但是,我尝试在 IIS 7.5 服务器上的/Management 目录中部署该应用程序,并且遇到了很多路由问题,因为我的应用程序中的一些调用依赖于该路由上的应用程序。

我有一些 javascript 代码,通过 ajax 调用来调用我的 Controller ,如下所示:

url: "/en/Home/GetFormula/"

我希望它转到:/Management/en/Home/GetFormula,但它会转到网站的根目录并查找/en/Home/GetFormula 并返回 404 错误。

关于如何将我的 javascript 路由修复为默认/Management/作为网站的根目录,有什么想法吗?

谢谢

最佳答案

当传递给 HTTP 请求的伪 URL 以斜线开头(例如“/path/to/resource”)时,伪 URL 被“完成”,就像给定的路径位于网站的路径下一样根目录(例如“http://my.site/path/to/directory”)。

显然,您希望处理伪 URL,就好像给定路径位于 Web 应用程序的根目录下一样。好吧,我有一个坏消息要告诉你:HTTP 协议(protocol)不处理“Web 应用程序”这样的事情。

ASP.NET MVC 框架提供了 Url.Content 函数,该函数采用以波浪号字符开头的伪 URL(例如“~/path/to/resource”)并返回结果将波形符替换为 Web 应用程序的根目录(例如,“http://my.site/an/application/path/to/resource”,假设 Web 应用程序的根目录为“http:/my.site/an”)/应用”)。但是,ASP.NET MVC 框架仅在服务器端可用。如果您的 JavaScript 在客户端运行,则无法调用 Url.Content

但并非一切都失去了。 ASP.NET MVC 框架 allows you to dynamically generate JavaScript code on the server and run it on the client ,同样的方式allows you to dynamically generate HTML content and of course send it to the client 。这样,您就可以在服务器端将伪 URL 扩展为实际 URL,并将生成的 JavaScript 代码部署到客户端。

关于javascript - asp.net MVC 路由 - javascript url 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700959/

相关文章:

javascript - Repl.it 上的自定义 404-Not Found 页面

javascript - 内部ajax从for循环jquery获取递增变量

javascript - Greasemonkey POST 请求总是返回 400 错误

javascript - 向类原型(prototype)添加方法,出错

asp.net-mvc - 如何在 ASP.NET MVC 中将字符串类型的模型属性呈现为复选框

java - 如何在 Spring Boot @ResponseBody 中返回 404 响应状态 - 方法返回类型是响应?

javascript - 更改 jquery sortable 的排序行为

jquery - 刷新/更新 MVC 页面部分的最 "MVC"标准方法是什么?

c# - 回发时输入文本返回 NULL?

javascript - Node JS res.sendFile 不发送图像或目录