当前位置: 首页 > news >正文

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

下载: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" })%>

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

 

相关文章:

  • 在用c#开发的ActiveX中调用JavaScript方法
  • 中学信息中心解决方案
  • Cisco实物图片库
  • IBM联合盟友向微软发难 系统软件岂能一家独大
  • 有用网站收集
  • C语言实现正余弦函数图像的输出!(源码)
  • linux如何知道某个端口运行的是什么程序
  • 回收站无法清空
  • 一些IT开发工程师的悲哀
  • 读 PetShop代码(Profile篇)
  • 首发2008年9月4级网工答案及解析,《4级网络工程师预测卷及考点解析》ISBN 978-7-121-07101-0...
  • 翟志刚、景海鹏、刘伯明担任神舟七号航天员
  • Ubuntu下安装 Erlang环境
  • OA选择首先要清晰概念
  • MVC(Model View Controller)模型-视图-控制器
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • axios 和 cookie 的那些事
  • exif信息对照
  • iOS 颜色设置看我就够了
  • October CMS - 快速入门 9 Images And Galleries
  • REST架构的思考
  • spring + angular 实现导出excel
  • Travix是如何部署应用程序到Kubernetes上的
  • v-if和v-for连用出现的问题
  • XML已死 ?
  • 高度不固定时垂直居中
  • 聊聊flink的TableFactory
  • 前嗅ForeSpider中数据浏览界面介绍
  • 设计模式(12)迭代器模式(讲解+应用)
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • elasticsearch-head插件安装
  • Linux权限管理(week1_day5)--技术流ken
  • # 安徽锐锋科技IDMS系统简介
  • #NOIP 2014# day.1 T2 联合权值
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (ZT)出版业改革:该死的死,该生的生
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)Linux下编译安装log4cxx
  • .Net 8.0 新的变化
  • .NET 使用 XPath 来读写 XML 文件
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • /*在DataTable中更新、删除数据*/
  • ??javascript里的变量问题
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @property @synthesize @dynamic 及相关属性作用探究