控制器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplication2.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
ViewData["Script"] = "<script>alert('Dome')</script>";
return View();
}
}
}
视图
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<!-- 如果用=号的话,就是原封不动的输出ViewData["Script"]中的代码,这样容易遭到跨站脚本的攻击,不够安全,所以这里是弹出一个对话框吗,对话框内容为Dome-->
<%=ViewData["Script"] %>
<!--<%: %>相当于<%=Html.Encode(<script>alert('Dome')</script>) %> 推荐大家用冒号,这里输出的是<script>alert('Dome')</script>-->
<%:ViewData["Script"] %>
<!--假如说我现在就是想在前台页面输出一些Html标签,或一些代码,就想让它原封不动的去执行那段代码,比如说我现在就想给一个Div标签放到页面去,怎么办呢,以下三种方法都可以,而且不用=号更安全-->
<%:Html.Raw("<div>我是div标签</div>") %>
<%:new HtmlString("<p>我是p标签</p>") %>
<%:new MvcHtmlString("<p>我也是p标签</p>") %>
</div>
</body>
</html>