MVC学习二:Controller和View关系

控制器(Controller)主要是定义方法和加载视图(View)

1.控制器中的Action方法返回值的类型ActionResult,string

2.控制器中Action方法接收浏览器参数方式:

2.1.通过 URL路由中配置的同名参数 --url: "{controller}/{action}/{id}",//Stu/Del/1

public ActionResult Del01(int id)

2.2.通过 Request.Form/Request.QueryString

    [HttpPost]
        public ActionResult Modify()
        {
            //model.Id
            //model.Name
            Request.Form["Name"]

            return Redirect("/stu/index");
        }     
    [HttpGet]
        public ActionResult Modify()
        {
            //model.Id
            //model.Name
            Request.QueryString["Name"]

            return Redirect("/stu/index");
        }     

2.3.通过 FormCollection 

        public ActionResult Modify2(FormCollection from)
        {
            //from["Name"]
            return null;
        }

2.4.通过 模型绑定 --View中所有空间的名称必须和模型中属性名一致,一般是post过来的才能接收

        [HttpPost]
        /// <summary>
        /// 3.2修改 - 执行修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ActionResult Modify(Models.Student model)//模型绑定:.NetMVC框架会在调用action方法前,创建 参数model对象,并从请求报文中检查看是否有与该对象属性同名的 数据,如果有,则 设置给 该对象同名的属性
        {
            DbEntityEntry entry = db.Entry<Models.Student>(model);
            entry.State = System.Data.EntityState.Unchanged;
            entry.Property("Name").IsModified = true;
            entry.Property("CId").IsModified = true;
            db.SaveChanges();

            return Redirect("/stu/index");
        }

视图加载方式:

//--------------------------------------2.0 加载指定视图-----------------------------------
        public ViewResult LoadViewBySelf()
        {
            return View();
            //1.0 通过指定 视图名 加载 指定的视图:此视图 必须在 当前控制器同名 的文件夹中
            //return View("LoadTarget");
            //2.0 通过指定 视图路径 加载指定的视图:基于根目录
            return View("~/Views/Home/List.cshtml");
        }

控制器向View传递数据

1.控制器类对象创建视图类对象,并把控制器类中的属性ViewBag、ViewData、TempData、Model值赋值给视图类对象的属性ViewBag、ViewData、TempData、Model

2.ViewBag、ViewData在视图类对象中互相共享的

3.Model是ViewData的Model属性

        public ViewResult TransData()
        {
            ////动态数据类型,类似与JS里的对象。
            ////但是因为 此种对象是在运行时才知道对象的类型,所以编译器和VS都无法推断并产生 智能提示
            //dynamic obj = new object();
            //dynamic Cla = new ClaController();
            //dynamic num = 1;
            ////动态数据类型 可以动态 添加属性
            //obj.AA = 123;
            //int a = obj.AA;

            //3.1 ViewBag
            ViewBag.GzItcast = "广州传智播客~~~!";
            //3.2 ViewData
            ViewData["HnItcast"] = "湖南传智播客~~~!";
            //3.3 TempData
            TempData["USAItcast"] = "美国传智播客~~~!";
            //3.4 Model
            Models.Class modelClass = new Models.Class() { CName="德国传智播客~~!" };

            ViewData.Model = modelClass;//return View(modelClass)就是把modelClass赋值给控制器对象ViewData属性的Model属性
            return View();
        }

Views

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>TransData</title>
</head>
<body>
    <div>
        @ViewBag.GzItcast <br />
        @ViewData["HnItcast"] <br />

        @ViewBag.HnItcast <br />
        @ViewData["GzItcast"]<br />

        @TempData["USAItcast"]<br />

        @Model.CName<br />

        @ViewData.Model.CName
    </div>
</body>
</html>

  

时间: 2024-10-19 16:17:17

MVC学习二:Controller和View关系的相关文章

MVC传值--从Controller想View传递List集合

在MVC中,传值是一个很重要的内容之一.前面的博客中,我们了解了如何从Controller中向View传递单个的变量值以及从View向Controller的反向传递. 这次我们来看看,如何把一个List集合进行传递. 首先,我们先在Controller中建立一个List: public ActionResult Index() { ViewData["QuestionId"] = Request.QueryString["QuestionID"];//从页面的地址栏

SpringMVC学习记录(二)--controller和view的联系

对于SpringMVC来说,controller由两个部分构成,分别是分发器和控制器,分发器DispatcherServlet决定着请求使用哪个控制器,并且决定着控制器返回哪个视图,整体结构如下. 1.创建一个controller 对于DispatcherServlet这个是springMVC框架自动实现,而我们只需要写相应的控制器即可,就拿上一个helloworld例子来说,创建一个控制器,只需要给其加上@controller的注解 /** * 加上@Controller决定这个类是一个控制器

ASP.NET MVC学习二之 Controller

一:简单理解Controller       新建controller必须以命名+controller结尾,controller的职责是负责与Model进行交换并将数据传递给view视图显示给用户 简单的控制器: public class HomeController : Controller { // // GET: /Test/ public ActionResult Index() { return View(); } }   这里,对其进行简单的修改 public string Inde

MVC学习二:基础语法

目录 一:重载方法的调用 二:数据的传递 三:生成控件 四:显示加载视图 五:强类型视图 六:@Response.Write() 和 @Html.Raw()区别 七:视图中字符串的输入 八:模板页 一:重载方法的调用 同一个控制器内的同名方法调用,可以用HttpGet 和HttpPost区分. [HttpGet] public void request(int id = 0) { Response.Write("get 请求成功~"); } [HttpPost] public void

MVC 学习系列-Controller

MVC最核心的也就是Controller了,控制器(controller)在功能中起到了核心功能. 1,)在MVC类库中,根据URL,通过MVCHandler进入MVC处理系统中, 2,)解析初始化对应的Route信息, 3,)在MVCHandler的Begin_RequestHandler函数中,根据URL获取到对应的Controller,和Action, 4,)在执行Controller.Execute之前还需要进行一个验证处理, 5,)之后执行Exceute, 6,)在Execute处理过

【转】ASP.NET MVC学习笔记-Controller的ActionResult

1. 返回ViewResult public ActionResult Index()   {       ViewData["Message"] = "Welcome to asp.net MVC!";       return View();   }  public ActionResult Index(){    ViewData["Message"] = "Welcome to ASP.NET MVC!";    re

angular学习(二):Controller定义总结

上文中总结完了ng-view的应用,将运维后台分开界面到2个,进行到 逻辑Controller处理中,本文将总结一下在项目中Controller都用到了哪些知识: $scope:作用域对象,仅仅是代表本Controller对象,本作用域的不论什么对象都用$scope来声明. $rootScope:代表整个页面作用域,能够在随意子$scope之间传递全局对象 $http:用来发送http请求的对象. 设置header var module =angular.module('index'); //设

spring MVC学习(二)---配置相关的东西

1.在上一节中我们提到过每一个DispatcherServlet都会有一个上下文 (WebApplictionContext),并且继承了这些上下文中的bean,其中以一些"特殊"的我们会用到,但是一般我们可以不用去理会这些,也不用自己去维护,因为springMVC有一个默认的列表,它帮我们进行维护. 下面看下官方文档中列出的: 2.在1中我们提到默认维护的列表,这些都定义在DispatcherServlet.properties和DispatcherServlet在同一个包中,他们都

Spring MVC学习笔记——Controller