javascript - MVC5 URL 不匹配适用于本地主机但不适用于远程计算机

标签 javascript asp.net-mvc iis ip localhost

我已经在 IIS 上部署了一个 MVC Web 应用程序。当我点击运行 (F5) 时,它在 VisualStudio 中运行良好。网址看起来像

首页: localhost:8080/

当输入数据并点击登录按钮时显示的第二页[只是一个简单的表单] -> localhost:8080/Data/Query/?fname=Markus&lname=Jennings

那是 Visual Studio 。 View 完美呈现并且一切按预期工作。

现在,当我通过手动输入“localhost”从浏览器访问 webapp 时,场景是这样的:

首页:

localhost/website

第二页:

localhost/website/Data/Query/?fname=Markus&lname=Jennings

如您所见,网站 字词/目录始终存在。我的申请发布在里面 C:\inetpub\wwwroot\website 所以,我有点明白为什么网站这个词在那里了。 Data 是我的 Controller ,Query 是我的操作方法。

现在是棘手的部分:

当我尝试使用同一台机器但使用不同的 url(即我的 IP 号码)访问我的网站时,会发生以下情况

a.b.c.d/patinput 主页已呈现。 输入数据并点击登录后,显示的 URL 为:

a.b.c.d/Data/Query/?fname=Markus&lname=Jennings

您可能已经猜到“网站”目录不在 URL 中。根据我的说法,它应该看起来像

a.b.c.d/website/Data/Query/?fname=Markus&lname=Jennings

如果我手动添加网站路径/词,第二页会按要求呈现。

第一页是一个简单的登录表单,我将名字和姓氏作为输入并调用一个 javascript 函数。从 Javascript 函数中,我使用从 HTML 页面检索到的参数调用我的 Controller (数据)。

在我正在使用的 javascript 函数中

window.location.href = '/Data/Query/?fname=' + fname + '&lname=' + lname;

我试过添加一个“.”在/Data/Query..... 之前也不起作用。

谢谢!

最佳答案

我通过变通方法解决了这个问题。看起来像这样。 在我的 javascript 中,我在第一次点击时保存了 window.location.href 值。将 localStorage 用作

localStorage.setItem("baseUrl", window.location.href);

每当我想导航到其他一些 Actionresult 时,我只需使用这个 baseUrl 附加它

关于javascript - MVC5 URL 不匹配适用于本地主机但不适用于远程计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40946599/

相关文章:

javascript - 当所有 DOM 激活时,javascript 中什么是合适的事件?

javascript - 如何将文档 CSS 属性应用于已解析的元素而不将其附加到 DOM

javascript - 在进行调用的脚本的节点之后追加子级

asp.net-mvc - OutputCache 不缓存 RedirectResult

asp.net-mvc - C# Razor 表单 - 插入 Angular 属性

asp.net - 为什么 Asp.net mvc 应用程序不能在 Asp.Net Classic 应用程序池上运行?

javascript - 重新填充 Canvas 删除区域的区域

javascript - 如何根据值动态更改页面的CSS?

IIS 通过 HTTP 方法重写排除规则

asp.net - 如何防止在不登录网站的情况下访问虚拟目录