我已经在 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/