【问题标题】:Javascript with some Razor is not working externally带有一些 Razor 的 Javascript 不能在外部工作
【发布时间】:2019-09-05 02:04:35
【问题描述】:

我有一个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 razor asp.net-mvc-5


    【解决方案1】:

    当您将 JavaScript 函数移动到单独的 JavaScript 文件中时,您是否会修改它?

    此行不适用于 .js 文件,因为您无权访问 ViewBag。

    var URL = '@(ViewBag.Title)';
    

    这在 .cshtml 文件中起作用的原因是因为您使用 razor 语法来访问 c# 对象。这会将对象中的值插入到 JavaScript 中,结果就是要评估的结果。

    由于 razor 语法在 JavaScript 文件中无效(在 JavaScript 文件中 ViewBag 的上下文也为零),这将不起作用,并且您的 URL 值将等于“@(ViewBag.Title)”。

    您必须将来自 ViewBag.Title 的值放在 JavaScript 能够访问它的位置。

    【讨论】:

    • Jacob 关于为什么会出现的评论。我要添加的唯一一件事是重新设计您的实现,以便您 onclick 传递变量
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多