注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

MVC3 On Razor使用(1):基础部分2  

2011-07-26 14:42:15|  分类: MVC |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
结果输出:<span>文本编码</span>

  C、其他的一些Razor语法

MVC3 On Razor使用(1):基础部分

  B、隐式javascript和验证

  其中一个比较出色的ASP.NET MVC3的改进是AJAX 和 Validation helpers将会默认使用unobtrusive JavaScript,ajax采用了jquery来编写。

MVC3 On Razor使用(1):基础部分

    查看原图(大图)

MVC3 On Razor使用(1):基础部分

  默认配置节里启用了unobtrusive JavaScript,故将上述js开启后,则验证就为客户端验证。

  相比MVC2的ajax验证,不需要在View页里添加<%Html.EnableClientValidation(); %>这行代码了。

  C、全局过滤器

  ASP.NET MVC 支持通过过滤机制来描述性地应用“横切”逻辑。 你可以使用属性语法为控制器和执行函数指定过滤器,如下所示

MVC3 On Razor使用(1):基础部分

  但在使用中,我们常常希望将一些过滤器逻辑应用于程序中的所有控制器上,如Authorize过滤器。

现在ASP.NET MVC3 能够让你指定一个全局的过滤器,这个过滤器可以应用于程序中的所有控制器上。

  如下图所示:在Global文件中将自定义过滤器加入GlobalFliterCollection中就可以了

MVC3 On Razor使用(1):基础部分

  在MVC3中,这个过滤器的判定逻辑非常灵活,你可以配置一个全局过滤器,使它只在某些条件符合的时候才启用。

  如下图所示,我实现了一个全局权限过滤器,在任何页面如果没有登录的话则跳转到LogOn页面。因为是全局的,当跳转到LogOn页面时,

  也要判断是否有权限,所以最终页面上什么都不显示。

  那如何解决这个问题呢,让LogOn页面不应用该全局权限呢?

  如下图所示:我们实现一个IFilterProvider,在里面过滤掉LogOn页面而应用于其他的页面。代码如下:

MVC3 On Razor使用(1):基础部分

    查看原图(大图)

  在使用Authorize过滤器时,发现了一个bug,就是当没有权限时,系统会自动跳到“Account/LogIn”页面,而不是跳转到webconfig中设置的页面。

<authentication mode="Forms">
      <forms  loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

  这个设置好像不起作用了,通过查看ScottGu’s Blog,知道这是一个bug,解决方案就是在Configuration配置节下加入

<appSettings>
    <add key="autoFormsAuthentication" value="false" />
</appSettings>

  我想在正式版中不会再有这个问题了。

  还有其他的一些新的特性,可以参考http://tech.it168.com/a2010/1111/1124/000001124749_1.shtml

  评论这张
 
阅读(731)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017