名称“文档”在布局页的当前上下文中不存在

本文关键字:上下文 不存在 文档 布局 名称 | 更新日期: 2023-09-27 18:08:38

我试图改变基于cookie的布局页面,所以我试着这样做:

 function LoggedOrNot()
    {
        @if (Page.User.Identity.IsAuthenticated)
        {
            var x = document.cookie;
            document.getElementByID("signupbutton").innerHTML = x;
        }
    }

但是不能识别document

名称“文档”在布局页的当前上下文中不存在

那是因为Razor认为你还在写c#代码。使用<text>标记为纯文本:

function LoggedOrNot()
{
    @if (Page.User.Identity.IsAuthenticated)
    {
        <text>var x = document.cookie;
        document.getElementByID("signupbutton").innerHTML = x;</text>
    }
}

你应该用文本标签把它包起来。

<text>var x = document.cookie; document.getElementByID("signupbutton").innerHTML = x</text>

这是因为你在这里定义了一个razor代码块和ViewEngine,当你试图执行View时,把它看作一个c#命令。显然,在这个上下文中没有任何名为document的变量。此外,你需要在那里嵌入一些js代码。这样做的方法是将其包装成文本标签。

@if (Page.User.Identity.IsAuthenticated)
{
    <text>var x = document.cookie; 
    document.getElementByID("signupbutton").innerHTML = x</text>
}