Asp.net Mvc Codeplex Preview 5 第一篇 Helper的新特性

简介: 下载:http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16775   Asp.net Mvc Codeplex Preview 5是Asp.net Mvc的一个过渡版本,它包含了一些新特性。

下载:http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16775

 

Asp.net Mvc Codeplex Preview 5Asp.net Mvc的一个过渡版本,它包含了一些新特性。

Pv5对于Helper的更改基本集中在HtmlHelper。对于简单的使用,我基本一带而过,如果朋友们有什么不明白,可以留言。

AttributeEncode提供了HtmlAttributeEncode功能

使用方法
<%= Html.AttributeEncode( " <script src=\ " j.js\ " ></script><div background='javascript:alert('');'/> " %>
编码结果
& lt;script src =& quot;j.js & quot; >& lt; / script >& lt;div background = ' javascript:alert( '' ); ' />

方法仅将引号 (")、“and”符号 (&) 和左尖括号 (<) 转换为等效的字符实体。该方法比Encode/HtmlEncode方法快得多。

 


Encode 提供了HTMLENCODE功能

 

使用方法
<%= Html.Encode( " <script src=\ " j.js\ " ></script><div background='javascript:alert('');'/> " ) %>
编码结果
& lt;script src =& quot;j.js & quot; & gt; & lt; / script & gt; & lt;div background = ' javascript:alert( '' ); ' /& gt;

RenderUserControl 改为 RenderPartial,并提供了更好的模板寻找方式

 

<% = Html.RenderUserControl( " /Views/Shared/Menu.ascx " %>
改为
<%  Html.RenderPartial( " Menu " ); %>
注意,原来的
<% = %> 改了为一句语言,有分号结束,与RenderAction统一了

验证控件

 起到了服务器端验证作用,

效果如下:

 

使用方法如下:

Model:

     public   class  MyModel
    {
        
public   int  ID {  get set ; }
        
public   string  Name {  get set ; }
    }

View:

     < h3 > 验证控件  </ h3 >
    
<% using (Html.Form( " home " " save " , FormMethod.Post)) { %>
    
<% = Html.TextBox( " ID " ) %>
    
<% = Html.ValidationMessage( " ID " , new  {style = " color:green " }) %>
    
<% = Html.TextBox( " Name " ) %>
    
<% = Html.ValidationMessage( " Name " ) %>
    
<% = Html.SubmitButton()  %>
    
<%
        }
%>
    
< div  style ="color: Red" >
        
<% = Html.ValidationSummary()  %>
    
</ div >

 Controller:

public   class  HomeController : Controller {
        
public  ActionResult Index() {//显示表单的页
            ViewData[
" Title " =   " Home Page " ;
            ViewData[
" Message " =   " Welcome to ASP.NET MVC! " ;
            
return  View();
        }
        [AcceptVerbs(
" POST " )]
        
public  ActionResult Save( int ?  ID,  string  Name)
        {//处理表单的页
            
if (ID == null )
            ViewData.ModelState.AddModelError(
" ID " , ID.ToString(),  " ID是必添项! " );
            
if  ( string .IsNullOrEmpty(Name))
                ViewData.ModelState.AddModelError(
" Name " , Name,  " Name是必添项! " );
            
if  (ViewData.ModelState.IsValid)//验证成功后做的操作
                
return  RedirectToAction( " Index " );
            
return  View( " Index " );//else
        }
        
        
public  ActionResult About() {
            
return  View();
        }
    }


 这就是PV5为我们提供了简单的验证功能了。

AntiForgeryToken

这是一个验证提交页的东西,类似ViewState

先在提交页的表单中写

<%=Html.AntiForgeryToken() %>

 生成一个类似

  < input  name ="__MVC_AntiForgeryToken"  type ="hidden"  value ="FaSCzN4P+6Hg977mdOX4z9pCKOy4vlP6whi0RGD+2L9mbTNGGx4GmN36sE4klJZf"   />

 的隐藏字段。

 拿刚才的Action为例:

        [ValidateAntiForgeryToken]
        
public  ActionResult Save( int ?  ID,  string  Name)
       

 DropDownList新加了默认项

要 <%=Html.DropDownList("请选择","CityID", new { @class = "select" })%>

如果不需要默认项留空字符串即可

 

目录
相关文章
|
7天前
|
前端开发 Java 编译器
.NET进阶篇03-Reflection反射、Attribute特性
.NET进阶篇03-Reflection反射、Attribute特性
|
1月前
|
存储 编译器
【.NET Core】特性(Attribute)详解
【.NET Core】特性(Attribute)详解
26 2
|
2月前
|
机器学习/深度学习 存储 开发工具
【专栏】解读 .NET 技术的先进特性
【4月更文挑战第29天】.NET 技术推动各行业软件开发创新,提供高效开发环境(如Visual Studio)和跨平台能力(.NET Core),支持多语言和函数式编程。其生态系统繁荣,NuGet包含大量开源库。同时,.NET整合云服务(Azure)和机器学习(ML.NET),强化应用扩展性和智能处理,巩固其在现代开发中的关键角色。
|
2月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
40 0
|
2月前
|
SQL Cloud Native NoSQL
.NET Aspire Preview 4 发布!
.NET Aspire 是一个有态度的云原生应用开发框架,旨在改善生成 .NET 云原生应用的体验,并提供一组强大的工具来帮助你生成和运行分布式应用。它允许开发者快速创建属于自己的云原生应用,或改造已有的项目成为云原生应用。
108 3
|
2月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
161 5
|
2月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
|
2月前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
|
2月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
100 0
|
11月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
137 0