个性化阅读
专注于IT技术分析

asp.net razor代码表达式

Razor语法广泛用于C

下面的示例演示代码表达。

// Index.cshtml

@{
    Layout = null;
    var coursename = "Java Collection";
}
<!DOCTYPE html> 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <h2>I want to learn @coursename </h2>
</body>
</html>

产生以下输出。

输出:


隐式Razor表达

隐式Razor表达式以@(at)字符开头,后跟C

// Index.cshtml

@{
    Layout = null;
}
<!DOCTYPE html>  
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <p>Current Time is: @DateTime.Now.ToString("T")</p>
</body>
</html>

它产生以下输出。

输出:


明确的Razor表达式

显式Razor表达式由带括号的@(at)字符组成。在下面的示例中,表达式用括号括起来以安全地执行。如果没有用括号括起来,它将引发错误。

我们可以使用显式表达式将文本与表达式连接。

// Index.cshtml

@{
    Layout = null;
}
<!DOCTYPE html>  
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <p>2 + 5 = @(2+5)</p>
</body>
</html>

它产生以下输出。

输出:


Razor表达编码

Razor提供表达式编码,以避免恶意代码和安全风险。如果用户输入了恶意脚本作为输入,则Razor引擎会对该脚本进行编码并呈现为HTML输出。

在这里,我们不在视图页面中使用Razor语法。

// Index.cshtml

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    Html.Raw("<script>alert('System Failure!')</script>")
</body>
</html>

它产生以下输出。

输出:


在下面的示例中,我们正在编码JavaScript脚本。

// Index.cshtml

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    @("<script>alert('this is alert box')</script>")
</body>
</html>

现在,它产生以下输出。

输出:

这次Razor引擎对脚本进行编码,并以简单的HTML字符串形式返回。

赞(0)
未经允许不得转载:srcmini » asp.net razor代码表达式

评论 抢沙发

评论前必须登录!