• 【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,取不同的HTTP动作方法选择器,如[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的值,值在当次网页要求就被清除。

    出处:https://www.cnblogs.com/SharpL/p/4594128.html

  • 相关阅读:
    Windows 系统光盘刻录教程-光盘怎样刻录?刻录数据光盘用"轨道一次写入"还是"光盘一次写入"?
    日本比中国快一个小时,泰国比中国慢一个小时
    轻量级微服务全局架构图-来自于黄勇老师
    2018-2-13-win10-uwp-读写csv-
    2018-8-28-win10-uwp-MVVM入门
    2018-12-25-win10-uwp-显示SVG
    2018-8-27-C#-powshell-调用
    2019-9-2-visual-studio-2015-warning-MSB3246
    2018-10-2-win10-uwp-win2d-特效
    2019-9-2-生成密码
  • 原文地址:https://www.cnblogs.com/mq0036/p/9083237.html
Copyright © 2020-2023  润新知