MVC5_Day1(Razor视图引擎)

2023-11-03 21:52
文章标签 引擎 视图 day1 razor mvc5

本文主要是介绍MVC5_Day1(Razor视图引擎),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MVC提供了两种不同的视图引擎:Razor视图引擎、Web Forms视图引擎。

1.代码表达式

1.1 转换字符:核心转换字符@,用作标记<=>代码之间相互转换的字符。

1.2 两种基本转换:代码表达式、代码块。都是求出值,再写入响应中。

<hl>@items.Length</hl>
----------------------
@{ string test="MyAPP";}
<span>@(test).Models</span>
=><span>MyApp.Models</span>

 

2.HTML编码

视图显示用户的输入等信息,存在XSS(跨站脚本注入攻击)。

2.1 Razor表达式使用HTML自动编码。

@{string message="<script> alert('hello');</script>
}

弹出一个警告框。

2.2 不进行HTML编码

@{string message="<strong>This is a bold"</strong>
}
<span>@Html.Raw(message)</span>

显示结果:

<span><strong>This is bold</strong><span>

js中使用@Ajax.JavaScciptStringEncode方法对用户输入进行编码,可以有效避免XSS攻击

<script type="texxt/javascript">$(function(){var message='Hello @Ajax.JavaScriptStringEncode(ViewBag.UserName)';$("#message").html(message).show('slow');
});

理解HTML和JavaScript编码的安全隐患很重要。

3.Razor语法示例

3.1 隐式代码表达式

代码表达式被计算,再将值写入响应。隐式代码表达式总是采用HTML编码。

<span>@model.Message</span>

3.2 显示代码表达式

<span>1+2=@(1+2)</sapn>

3.3 无编码代码表达式

不需要采用HTML编码的值,可以使用HTML.Raw方法保证值不被编码。

<sapn>@Html.Raw(model.Message)</span)

3.4 代码块

@{int x=124;string y="abc";
}

3.5 文本和标记相结合

@foreach(var item in items)
{<span>Item @item.Name.</span>
}

3.6 混合代码和纯文本

@if(showMessage)
{<text>This is plain text</text>
}

<text>标签只是把标签内容写入到响应,标签本身不写入。

3.7 转移代码分割符

使用@@编码@

3.8 服务器端的注释

@*

XXXXX

*@

3.9 调用泛型方法

@(Html.SomeMethod<AType>())

这篇关于MVC5_Day1(Razor视图引擎)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/341120

相关文章

数据视图(AngularJS)

<!DOCTYPE html><html ng-app="home.controller"><head><meta charset="utf-8"><title>数据视图</title><link href="page/common/css/bootstrap.min.css" rel="stylesheet"><script src="page/common/js/angular.js"></

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

MySQL技术内幕_innodb存储引擎

MySQL技术内幕_innodb存储引擎 INNODB innodb中如果表没有主键 表是否由 非空唯一键,有则该字段为主键没有,则自动创建一个6字节大小的指针 innodb存储引擎的所有数据都存储在表空间中,表空间由段,区,页(块)组成。 如果启用了 innodb_file_per_table, 则每张表内的数据可以单独放在一个表空间中即使启用了上面参数,共享表空间也会因为 系统事务信息

Matter.js:Web开发者的2D物理引擎

Matter.js:Web开发者的2D物理引擎 前言 在现代网页开发中,交互性和动态效果是提升用户体验的关键因素。 Matter.js,一个专为网页设计的2D物理引擎,为开发者提供了一种简单而强大的方式,来实现复杂的物理交互效果。 无论是模拟重力、碰撞还是复杂的物体运动,Matter.js 都能轻松应对。 本文将带你深入了解 Matter.js ,并提供实际的代码示例,让你一窥其强大功能

架构全景视图

文章目录 一、战略规划二、业务架构Business Architecture2.1业务架构定义2.2 业务架构组成2.3 TOGAF2.3.1 Archimate建模(重要) 三、数据架构Data Architecture3.1 数据架构定义3.2 数据架构组成 四、应用架构Application Architecture4.1 应用架构定义4.2 应用架构组成 五、技术架构Technol

认识鬼火引擎

一、Irrlicht简介 (1)概念Irrlicht引擎是一个用C++书写的高性能实时3D引擎,可以应用于C++程序或者.NET语言中。通过使用Direct3D(Windows平台)、OpenGL 或它自己的软件着色程序,可以实现该引的完​全跨平台。尽管是开源的,该Irrlicht库提供了可以在商业级的3D引擎上具有的艺术特性,例如动态的阴影,粒子系统,角色动画,室内和室外技术以及碰撞检测等。(

一个图形引擎的画面风格是由那些因素(技术)决定的?

可能很多人第一直覺會認為shader決定了視覺風格,但我認為可以從多個方面去考慮。 1. 幾何模型 一個畫面由多個成分組成,最基本的應該是其結構,在圖形學中通常稱為幾何模型。 一些引擎,如Quake/UE,有比較強的Brush建模功能(或應稱作CSG),製作建築比較方便。而CE則有較強的大型地表、植被、水體等功能,做室外自然環境十分出色。而另一些遊戲類型專用的引擎,例

2409wtl,切换视图

原文 介绍 我从一个基于SDI(单文档接口)WTL向导的应用开始,添加了一些从控件继承的窗口和一些对话框窗口(表单视图),然后才发现我必须,使SDI框架动态加载和卸载子窗口. 本文演示了两个可用来完成的技术:在SDI应用中的视图间动态切换.这是我使用的两个. 技术 1技术:第一个方法涉及按需析构和重建视图实例.这更简单,且在不介意析构和重建窗口对象时效果很好. 2:按需创建视图,然后用