在我的 razor View 中,我想将所有 jQuery 放入一个单独的 JS 文件中,然后使用 @Scripts.Render 在 View 上引用该文件。

在我看来,我有一个 jQuery 部分,如下所示:

var settings = {}; 
settings.baseUri = '@Request.ApplicationPath'; 
var submissionUrl = ""; 
if (settings.baseUri === "/ProjectNameOnServer") { 
    submissionUrl = settings.baseUri + "/api/apiControllerName/apiControllerMethodName/"; 
} else { 
    submissionUrl = settings.baseUri + "api/apiControllerName/apiControllerMethodName/"; 
} 

这部分代码允许我在本地主机和服务器上使用 api 测试提交表单,而无需更改 url。

如果我在本地主机上测试,则 @Request.ApplicationPath ==/,但如果我在服务器上测试,则 @Request.ApplicationPath ==/ProjectNameOnServer .

我想知道如何在不使用 Razor 而仅使用 jQuery 的情况下获得这些相同的值。

我已经尝试过:

var settings = {}; 
settings.baseUri = window.location.protocol + "//" + window.location.host; 

但是settings.baseUri == http://localhost:xxxxx。我只需要 @Request.ApplicationPath 给我的东西。

请您参考如下方法:

使用location.host有条件地创建相对路径

settings.baseUri = location.host.includes('localhost') ? '/' : '/ProjectNameOnServer'; 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!