javascript - 如何将 window.baseUrl 从 razor 代码返回到我的外部 .js 文件中

标签 javascript jquery asp.net-mvc razor

我已将此 JavaScript 函数包含在 View 页面的头部部分,如下所示,我想在位于脚本文件夹中的 people.js 文件中调用此 window.baseUrl:

   <head>
   <script type="text/javascript">
        window.baseUrl = '@Url.Content("~/")';  
   </script>
   @*<script type="text/javascript" src="@Url.Content("~/scripts/people.js")">    </script>*@
  </head>

在 people.js 文件中,我尝试像这样调用此函数:

self.followersUrl = window.baseUrl("/People/Followers?uid=" + data.UserId);

但它给了我错误:

Uncaught TypeError: window.baseUrl is not a function

我想知道如何注入(inject)这个。 在查看页面上,我想发送此 followerUrl 和其他 url,如下所示:

 <a data-bind="attr: { href: followersUrl }">
  <a class="btn pull-right" data-bind="visible: !isFollowed && !isOwnProfile, attr: { href: followAction }">Follow</a>

根据 Scott 的回答,他建议这样做,因为 window.baseUrl 不是一个函数,所以我尝试了这个:

 self.followAction = window.baseUrl + '/People/Follow?uid=' + data.UserId;

现在,当我尝试单击“关注”按钮时,

它给出的错误我在控制台中检查了这个: people/Follow?uid=8 net::ERR_NAME_NOT_RESOLVED 控制台中的网址是 people/Follow?uid=8:1 但我在浏览器选项卡中看到正确的网址,即人/关注?uid=8

在这里,正如你所看到的,大写的 P 更改为小写的 p,然后我返回到 .js 文件并尝试了以下操作:

 self.followAction = window.baseUrl + 'localhost:44305/People/Follow?uid=' + data.UserId;

然后它的发送网址是这样的:

 https://localhost:44305/localhost:44305/People/Follow?uid=8

这里发生了什么。请给我建议

最佳答案

window.baseUrl 是一个字符串,而不是一个函数。

您可能想要:

window.baseUrl + '/People/Followers?uid=' + data.UserId;

关于javascript - 如何将 window.baseUrl 从 razor 代码返回到我的外部 .js 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34670263/

相关文章:

javascript - 为什么 show() 只工作一瞬间?

c# - 使用 NSubstitute 在 MVC 单元测试中模拟用户 IP 地址

c# - SignalR 客户端未定义

javascript - 我可以完全在 Controller 中创建 Symfony 表单提交吗?

javascript - 根据该键内数组中的值查找键的值

c# - MVC 架构中的业务逻辑放在哪里?

jquery - 有没有办法使用 MVC 4 验证来实现 Twitter Bootstrap?而不是使用jquery?

javascript - axios - 发送表单数据和非表单数据

javascript - 用 JS 在 DIV 结束时的事件

javascript - jQuery.show() 问题