zoukankan      html  css  js  c++  java
  • [MVC]Controller

    1,控制器中所有的动作方法必须声明为public,如声明为private或protected,将不被视为动作方法。

     如果将Action声明为private,或者是添加[NonAction]属性,则不对外公开,无法访问。

    1         private ActionResult Index()
    2         {
    3             return View(db.Guestbooks.ToList());
    4         }
    5 
    6         protected override void  HandleUnknownAction(string actionName)
    7         {
    8             Response.Redirect("http://www.baidu.com");
    9         }

    代码中Index为私有方法,无法访问,如果在浏览器中输入http://localhost:5502/guestbook/Index,那么将跳转到百度首页,因为我们重写了HandleUnknownAction方法。

    2,可以创建两个同名的Action,取不同的动作方法选择器,如[HttpGet]/[HttpPost],前者用于显示HTML窗体,后者用来接收窗体输出的值。

      控制器负责处理浏览器的所有请求,并决定响应什么属性给浏览器(注意不是如何响应,是响应什么,如何响应是View的关注点),控制器还负责协调Model与View的数据传递。控制器中存在多种传递数据给视图的方式,比如ViewData["key"]=value。ViewData是一个ViewDataDictionary对象,实现了接口IDictionary<string, object>,所以在设置ViewData属性时,传入的key必须为字符串类型。

      比如说ViewData.Model,也就是之前常用的强类型视图。

      比如说ViewBag,ViewBag被声明为dynamic动态类型,对ViewBag的任何访问动作,最终还是对ViewData来进行操作,二者唯一的差别是ViewBag是动态类型。

      代码:ViewBag.key=value; 可以看出ViewBag是ViewData的语法糖。

      TempData也是字典型别,与ViewData不同,TempData用session保存信息,TempData一般与RedirectResult配合使用,只要有取用TempData的值,值在当次网页要求就被清除。

  • 相关阅读:
    五月一日工作感悟
    Loadrunner 性能指标
    tcp ,http .udp
    Loadrunner 面试常见问题
    抓包不求人
    性能测试自动化测试平台
    jmeter 控制器
    转:java中String使用equals和==比较的区别
    转:Java对象及对象引用变量
    排序算法小结
  • 原文地址:https://www.cnblogs.com/SharpL/p/4594128.html
Copyright © 2011-2022 走看看