javascript - 带有一些 Razor 的 Javascript 不能在外部工作
问题描述
我有一个javascript函数
function GotoFPLoginPage() {
var url = '@(ViewBag.Title)';
if (url.includes("Home")) {
window.location.href = "/FPLogin/Index";
}
}
执行:
<html onclick="GotoFPLoginPage()">
这样做的目的是当用户单击页面的任何部分时,它将重定向到另一个目标页面。
如果我在我的内部使用函数本身,则此示例运行良好,_layout page
但是当我尝试将其设为 javascript 文件并创建唯一名称时Custom_JSFile
,调用GotoFPLoginPage()
它不起作用。
@Scripts.Render("~/Scripts/Custom_JSFile.js")
任何想法都受到高度赞赏。
解决方案
当您将 JavaScript 函数移动到单独的 JavaScript 文件中时,您是否会修改它?
此行在 .js 文件中不起作用,因为您无权访问 ViewBag。
var URL = '@(ViewBag.Title)';
这在 .cshtml 文件中起作用的原因是因为您使用剃刀语法来访问 ac# 对象。这会将对象中的值插入到 JavaScript 中,结果将被评估。
由于 razor 语法在 JavaScript 文件中无效(在 JavaScript 文件中 ViewBag 的上下文也为零),这将不起作用,并且您的 URL 值将等于“@(ViewBag.Title)”。
您必须将值ViewBag.Title
放在 JavaScript 能够访问它的地方。
推荐阅读
- spring-boot - io.undertow.servlet.util.IteratorEnumeration 不能转换为 java.lang.String
- git - Git硬重置不会恢复本地文件
- angular - AngularCompilerPlugin 与多个 node_modules 文件夹
- python - 如果熊猫行发现不止一个并且删除最新的,则条件为 True
- c# - 有没有办法以编程方式强制 Windows 搜索新的 WiFi nextworks?
- android - onConfigureFailed: android.hardware.camera2.impl.CameraCaptureSessionImpl@1bceb33
- typescript - 在打字稿中获取子类的返回类型
- android - 如何查看 Firebase 事件参数值?
- node.js - 尝试在 mailchimp 中添加联系人时出现错误 400
- r - 如何在闪亮的范围内渲染网格