在互联网上我发现了很多 JS 代码示例,如下所示:
window.location.href = "@Url.Action('Index', 'Home')";
人们在 javascript 代码中使用 HTML 帮助程序,例如参见 that 。 但是当我想要这样做时,我得到一个简单的字符串:
http://localhost:28832/@Url.Action('Index',%20'Home')
为什么我的 HTML 助手没有被处理?
最佳答案
Razor 语法适用于 View 。如果你的 JS 代码嵌入到 View 中,它就会工作。如果您的 JS 代码位于外部文件中,则不要指望它能够工作。
如果您考虑一下 js 文件是如何提供的,razor 引擎永远不会处理它们,它们只是资源。不知道有没有办法给razor引擎添加js支持。
我使用这个解决方法: 当我需要 JS 文件上的一些动态( Razor )内容时,我所做的就是声明一个函数并将内容作为该函数的参数。然后我从 View 文件调用该函数并将 razor 语句作为参数传递。在你的情况下,这可能是这样的:
JS 文件:
function foo(link){
window.location.href = link;
}
查看文件
<script>
foo("@Url.Action('Index', 'Home')");
</script>
编辑: This link由Maxwell Troy Milton King提供指向一个类似的问题,它有很好的答案,如果这个解决方案还不够,请尝试一下。
关于c# - JS 中的 Url.Action 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24717467/