5

这是我正在尝试做的事情:

$(document).ready(function () {
    @if (ViewBag.VerifyIfLoggedIn) {

        $("#needlogin-popup").dialog({
            modal: true,
            closeOnEscape: true,
            minHeight: 384,
            minWidth: 596,
            resizable: false,
            show: {
                effect: 'slide',
                duration: 500,
                direction: 'up'
            },
            hide: {
                effect: 'slide',
                duration: 250,
                direction: 'up'
            },
            title: 'Inicie Sesion'
        });
    }
});

如果某件事属实,则将此 Javascript 代码输出到页面。

但我得到了错误:

CS1056: 意外字符“$”

如何告诉 Razor 停止解析并输出条件语句中的任何内容?

4

1 回答 1

10

<text>...</text>在代码周围使用。

在此处阅读它的工作原理:

http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx

标签是 Razor 特殊处理的元素。它导致 Razor 将块的内部内容解释为内容,并且不渲染包含标签元素(这意味着只会渲染元素的内部内容 - 标签本身不会)。

当您要呈现未由 HTML 元素包装的多行内容块时,这很方便。

$(document).ready(function () { 
    @if (ViewBag.VerifyIfLoggedIn) { 
        <text>$("#needlogin-popup").dialog({ 
            modal: true, 
            closeOnEscape: true, 
            minHeight: 384, 
            minWidth: 596, 
            resizable: false, 
            show: { 
                effect: 'slide', 
                duration: 500, 
                direction: 'up' 
            }, 
            hide: { 
                effect: 'slide', 
                duration: 250, 
                direction: 'up' 
            }, 
            title: 'Inicie Sesion' 
        }); </text>
    } 
}); 
于 2012-05-04T01:15:40.213 回答