zoukankan      html  css  js  c++  java
  • [ASP.NET MVC 5 高级编程] 第3章 视图

    第3章 视图##

    概述

    视图的作用	
    	渲染HTML界面
    
    控制器向视图传递数据	
    	ViewBag.  
    	模型,模型视图. @model ProjectName.Models.something  //完全限定
    	通过在~/Views/web.config 文件中添加namespace来避免每次使用完全限定
    
    视图约定
    	目录/文件名称/选择
    	return View();		//与控制器动作同名的视图
    	return View("Else");//指定控制器下Else视图
    	return View("~Views/Con1/Index.cshtml"); //指定完整路径	
    
    强类型视图
    	使用模型对象等可以获得智能感知/编译器检查等好处
    	return View(someModel);  //传递模型对象
    

    Razor语法

    HTML编码
    	Razor表达式用HTML自动编码,并不会显示HTML标记
    	若要显示HTML标记可以使用视图辅助类(@HTML,IHtmlString接口的实例)
    	若要显示不经过HTML编码的文本,使用HtmlString的实例或者Html.Raw(sometext);
    
    	在JavaScript中使用用户提供的Razor变量值时,要使用JavaScript字符串编码而不仅仅是HTML编码,要使用@Ajax.JavaScriptStringEncode()方法对用户输入进行编码.这样可避免XSS攻击.如:
    	<script>
    		$(function(){
    			var message = 'Hello @Ajax.JavaScriptStringEncode(ViewBag.Name)';	
    			$("#message").html(message).show('slow');
    		});
    	</script>
    	
    代码块
    	@{ something big }
    
    隐式/显示表达式
    	<span>@model.Name</span>	<span> 1 + 2 = @(1+2) </span>
    
    文本和标记结合
    	<span>Item @item.Name</span>		
    
    代码块/标记结合
    	@if(show){<text>Show Text</text>} 
    
    组合方式
    	代码块,文本,标记,显示表达式,隐式表达式,视图辅助类
    
    转义与注释
    	@@显示"@",  @* something *@ 注释
    
    调用泛型方法
    	由于泛型方法中使用了尖括号,需要使用显示表达式
    

    RenderBody

    语法:
    	@RenderBody()  //视图在布局中的位置
    

    RenderSection

    语法:
    	@section Footer { something }  					//在布局中定义
    	@RenderSection("Footer",required:false)   		//在视图中使用
    	@if(IsSectionDefined("Footer"){ ... }			//判断节是否有定义
    
    说明:
    	默认使用节时,required不需要写,所有需要每个视图都要提供节定义.
    

    ViewStart

    说明:
    	_ViewStart.cshtml   //指定默认布局,视图中不指定时使用此设置
    	@{ Layout="~/Views/Shared/_Layout.cshtml"; }  //指定视图
    

    PartialView

    语法:
    	C#:Return PartialView([ViewName]);
    
    说明:
    	部分视图不能指定布局
    	可以结合Ajax使用,get时返回部分视图内容并加载到相应元素
  • 相关阅读:
    Swift入门篇-Hello World
    Swift入门篇-swift简介
    Minecraft 插件 world edit 的cs 命令
    搭建本地MAVEN NEXUS 服务
    MC java 远程调试 plugin 开发
    企业内部从零开始安装docker hadoop 提纲
    javascript 命令方式 测试例子
    ca des key crt scr
    JSF 抽象和实现例子 (函数和属性)
    form 上传 html 代码
  • 原文地址:https://www.cnblogs.com/djq0/p/5695467.html
Copyright © 2011-2022 走看看