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时返回部分视图内容并加载到相应元素
  • 相关阅读:
    推广项目难点-隐藏IP上
    推广项目难点之数据清洗
    推广项目难点之数据随机分发
    推广项目新架构测试报告
    notepad++正则表达式
    MySQL查询时构建自增ID
    ASP.NET MVC页面UI之多级数据选择UI(行业信息、专业信息、职位信息的选择)
    DesignMode_EasyFactory
    Arithmetic_Thinking -- greedy algorithm
    JDBC--SQL(DDL)
  • 原文地址:https://www.cnblogs.com/djq0/p/5695467.html
Copyright © 2011-2022 走看看