- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.5 动作执行结果 ViewData与TempData: 当Action返回View时,往往需要向View输入数据,输入的数据常用ViewData、TempData和强类型来实现,有关强类型参见下一章相关内容。 ViewData TempData ASP.NET MVC 程序开发 ?第 *页 4.5 动作执行结果 ViewData: ViewData是一个ViewDataDictionary类,可用于存储任意对象的数据,但存储的数值为字符串,并且只保存在当前HTTP请求中,其详细使用方法参见下一章内容。 ASP.NET MVC 程序开发 ?第 *页 4.5 动作执行结果 TempData: TempData与ViewData类似,也是字典类,但TempData的值只是暂时保存在1次请求中,请求发送回服务器后,Action结束则保存的值将被清空。 之所以会设计TempData,主要用于防止应该只发送一次的请求会被多次发送到服务器而引发不应发生的多次处理同一数据的情况。最常用的场景就是在向系统中发送添加数据的请求时,用户可能在浏览器中使用“刷新”等操作,这些操作会把同样的数据多次发送给服务器,但实际上用户可能只是需要添加一份数据。 ASP.NET MVC 程序开发 ?第 *页 本章小结 ASP.NET MVC 程序开发 ?第 *页 本章内容主要是展示Controller在ASP.NET MVC中的应用技术,Controller是MVC中的处理中枢,Controller通过Action接收客户端的数据,并完成各种处理和导航。由于Controller的各种结果通常需要由View来展示给客户,所以Controller与View将进行交互,而交互的数据又常通过强类型的Modle完成。此外,需要适当地使用各动作过滤器。 * 4.4 过滤器属性 Authorize属性: 登录页面使用哪个Action可以直接在Web.config文件中的system.web节中通过authentication节设定,其中forms配置项的loginUrl属性的值即为指定的登录Controller和Action,代码如下所示则登录所用Controller为AccountController,所用Action为LogOn ASP.NET MVC 程序开发 ?第 *页 authentication mode=Forms forms loginUrl=~/Account/LogOn timeout=2880 / /authentication ASP.NET MVC 程序开发 ?第 *页 [HttpPost] [Authorize(Roles=Admin)] public ActionResult Create(Genre genre) { if (ModelState.IsValid) { return RedirectToAction(Index); } return View(genre); } [HttpPost] [Authorize(Users = Liwei,dongzhuo)] public ActionResult Create(FormCollection fc) { //处理创建对象的实际业务过程 return RedirectToAction(CreateResult); } [Authorize] public ActionResult Index() { return View(); } 4.4 过滤器属性 Authorize属性: Authorize属性还可以直接应用到Controller上,那么此Controller中的所有Action都将应用相同的权限控制规则,但对于需要特殊要求的Action可以在此Action前使用特定的Authorize属性,如下例所示,EmptyTemplateController中所有的Action默认都只有Admin角色中的用户才能访问,但由于Index活动前使用了AllowAnonymous属性修饰,则Index活动所有的用户都能访问(包括匿名用户)。 ASP.NET MVC 程序开发 ?第 *页 [Authorize(Roles = Admin)] public class EmptyTemplateController : Controller { [AllowAnonymous] public ActionResult Index() { return View(); }
文档评论(0)