MVC程序的办事原理,应用开拓之Asp

本章简言

Java进击C#——应用开辟之Asp.net MVC,

本章简言

上1章作者讲到关于Asp.NET的知识点。明白Asp.NET基本的知识点之后,大家在来上学有关C#的MVC框架就差不离多了。显明本章正是来介绍一下有关Asp.NET
MVC。对于MVC的钻探我相信我们已经很领会了。小编在此处就不多说了。小编有个同学做Asp.NET开拓的。他跟本身讲过一句话——小编都快忘了HTML了。上一章中大家理解做Asp.NET。用纯HTML那么小编以为您料定会被人认为是SB。对于爱好纯手工业来写分界面设计的人来说,Asp.NET
MVC
决对不会让您失望。而本文作者恐怕还会用到部分struts二框架的知识来比较一下。不多说了。进入本章的始末吗。

Global.asax文件

在讲Asp.NET
MVC以前大家来看一下3个文书。正是Global.asax文件。那为什么要讲那个文件呢?而以此文件又有何效果呢?Global.asax文件全名称为全局应用程序类。他跟Asp.NET
MVC并从未平素的关联。Asp.NET常常也会用到。想要创立他也很轻巧。选中项目右击》增加》新建项。

美高梅开户网址 1

点击加多按扭:

美高梅开户网址 2

双击Global.asax:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;

namespace WebExample
{
    public class Global : System.Web.HttpApplication
    {

        protected void Application_Start(object sender, EventArgs e)
        {

        }

        protected void Session_Start(object sender, EventArgs e)
        {

        }

        protected void Application_BeginRequest(object sender, EventArgs e)
        {

        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {

        }

        protected void Application_Error(object sender, EventArgs e)
        {

        }

        protected void Session_End(object sender, EventArgs e)
        {

        }

        protected void Application_End(object sender, EventArgs e)
        {

        }
    }
}

看了地点的代码。作者相信光从名字就可能看到1二。什么意思呢?在采纳起来实行的时候会去调用Application_Start方法并且只进行叁回。而每一趟1请求的时候会去调用Application_BeginRequest方法。当用应关团的时候,会去调用Application_End。假如做B/S开采不领会Session的话,那么笔者也无从了。所以对于Session_Start方法调用,小编就不多说了。 是还是不是感到JAVA跟的Web.xml的监听事件有有个别像吧。

Asp.NET MVC

作者在攻读Asp.NET MVC的时候。visual studio的Asp.NET
MVC例子为作者做了十分的大的进献。让大家看一下visual
studio的列子来打探一下Asp.NET
MVC吧。什么样子成立项目。不用小编在讲了。直接看一下新建项目标对话框吧。

美高梅开户网址 3

规定现在。会弹出下列对话框。

 美高梅开户网址 4

大家得以看到地点的多少个选项。

空:表示建构2个什么样都未曾的Asp.NET MVC。

主干:表示建设构造二个最大旨得以支付的Asp.NET MVC。

别的的:是面向分歧专业的例证。

作者采取中间为Internet 应用来询问关于Asp.NET
MVC的文化。下边正是新建的类型结构。

美高梅开户网址 5

App_Data文件夹:用于存放数据文件。如SQL server的MDF文件之类似。

App_Start文件夹:这些文件夹存放了一些Asp.NET MVC开头要推行的配置类。

Content文件夹:存放一些有关宗旨的文本。如CSS文件。

Controllers文件夹:存放调整器。正是MVC中的C

Filters文件夹:看名字就知道存放过滤器了。

Images文件夹:不用看了。就存放图片。

Models文件夹:用于存放模型对象。

Scripts文件夹:用于存放JS文件。

Views文件夹:用于存放视图。

有了上边创制的列子。那对小编极度好的一件业务。光看上面包车型地铁品类布局笔者至少知道1件事情。MVC中的V就在对应的Views文件夹里面,而C就在Controllers文件夹里面。那对大家来说很主要。接下来正是要精通M-V-C之间是如何样子工作。大家就足以学学到Asp.NET
MVC。Struts二在起步的时候会去加载对应的安排文件。当然对于Asp.NET
MVC来说,也有相应的那项专业。只是加载的事物区别而以。如下。

Global.asax:

 public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();
        }
    }

地点的代码是在Global.asax文件之中的。那么我为啥要哪出来说啊?那便是从头开始化Asp.NET
MVC的地点。上边的总做了几件职业吗?

1.注册WebApi。对于WebApi是何许。不精通大家有没有用过RESTful
框架。可惜只是探听而以。

二.挂号过滤器。对JAVA开辟人士来讲,不掌握过滤器。这就有某个过份了。

三.报了名路由器。这一个很重大。Struts贰是什么体统通过请求的UOdysseyL来找到相应的Action类。没错。一定是透过struts.xml配置文件的action节点。路由器便是1对一于action节点的作用了。

4.注册Bundle新闻。关于Bundle是何许笔者也不好说。只知道他是用于UI分界面引进CSS和JS。这年能够把两个CSS和JS绑成一同。只要引三个Bundle的U瑞虎L就是把这些些CSS和JS一齐引进。

伍.登记证件。关于这一个的话。请读者们自行查看。反正小编未有用到过。所以不敢说。

从地方大家知晓壹件专门的职业——请求的U奥迪Q伍L是透过路由器来分析找到相应的调节器。所以读书Asp.NET
MVC就务须询问一下路由器是何等体统职业的。让我们到App_Start文件夹里面去找几个叫RouteConfig的类。如下

 1 public class RouteConfig
 2     {
 3         public static void RegisterRoutes(RouteCollection routes)
 4         {
 5             routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 6 
 7             routes.MapRoute(
 8                 name: "Default",
 9                 url: "{controller}/{action}/{id}",
10                 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
11             );
12         }
13     }

上边正是安顿路由器的地方。大家得以看到路由器事实是一种以设置UBMWX叁L模板来拍卖相应的UCR-VL请求。上面是每一个Asp.NET
MVC都会提供的私下认可的U奥德赛L模板。

name:当前路由器的称呼。

url:URL模板。

defaults:U奥迪Q5L请求的暗许值。

此地跟Struts贰的作法是区别样子。Struts二在拍卖U汉兰达L请求是通对的package节点的名字和action节点的名字来鲜明相应的action类,再经过action节点配置音信来实行相应的章程。而Asp.NET
MVC是经过路由器来分析,并寻觅相应的调节器和调整器里面的艺术。什么体统讲啊?让笔者看一下方面url的值。

"{controller}/{action}/{id}"

 

上壹章我讲到关于Asp.NET的知识点。掌握Asp.NET基本的知识点之后,大家在来读书有关C#的MVC框架就回顾多了。显明本章正是来介绍一下关于Asp.NET
MVC。对于MVC的思辨作者相信我们早就很明白了。笔者在这里就不多说了。作者有个同学做Asp.NET开垦的。他跟自家讲过一句话——小编都快忘了HTML了。上一章中大家精通做Asp.NET。用纯HTML那么我认为你势必会被人以为是SB。对于喜欢纯手工业来写分界面设计的人来说,Asp.NET
MVC
决对不会令你失望。而本文作者恐怕还会用到一些struts二框架的知识来相比较一下。不多说了。进入本章的剧情呢。

地方正是U凯雷德L模板。假诺用户请求

UrlParameter.Optional了吧?正是跟大家讲id是可选的。所以严刻来说action节点的功用跟Asp.NET
MVC的调节器是呼应的。都是用来调整作业终止之后要显得的视图。并差别是调控器是多个类。让我们看一下调节器的代码吧。那标准能够增长驾驭。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcExample.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your app description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
}

咱俩能够通晓HomeController类承袭了Controller类。是还是不是说承袭Controller类就足以了。显著不是,作者试着把HomeController前边的Controller去掉,发掘根本找不到调整器。表达了Asp.NET
MVC依旧有1个预约——调整器要按XxxController来命名。难道就不得以让开垦职员自身来定义名字啊?小编未有说那一个。只是有有些烦麻。他要用到调控器工厂。正是IControllerFactory。所以笔者依旧希望大家能本本分分一点吗。struts二在作业终止之后。会回来一个字符串结果来规定要去呈显的视图。struts二的视图却有三种。同样子Asp.NET
MVC他也有若干个重返结果。

EmptyResult:重临多个空的结果。便是再次回到值为void。

ContentResult:再次回到一个文书内容的结果。

美高梅开户网址 ,MVC程序的办事原理,应用开拓之Asp。JsonResult:重返贰个JSON格式的结果。

ViewResult:再次回到一个视图的结果。正是类似于HTML文件。

上边我并从未任何列出来。其余的话,小编希望读者们融洽去查看。好了。让大家看一下地点代码部分中有一个View()的秘诀。这一个重返的是一个ViewResult型类。上边只是调用View()。这一年他会用方法名来分明相应的视图。举例index方法被调用。那么View()就能到Views文件夹下的Home文件夹去找Index.cshtml。那么为何是Home文件夹呢?私下认可正是假设XxxController的话,就是View/Xxx上面找对应的视图。那么对于cshtml文件是何等吧?你能够精晓为跟ftl文件是3个类型的。同时在Views文件玩夹下有贰个叫Shared文件夹。如下。

美高梅开户网址 6

理所当然每叁个调节器在Views文件夹都会有3个相应的文件夹。文件夹名跟调控器的名字同样子。那么有未有共用的呢?没错。Shared文件夹正是用于全体调控器供用的。现在唯有一个标题了——使用其余的视图。看一下下边包车型客车图样。

美高梅开户网址 7

即使大家调用Index方法。按道理大家要去调用Index.cshtml。那么一旦要调用Aomi.cshtml什么办。如下就能够了。

 public class Home:Controller
    {
        public ActionResult Index()
        {
            return View("Aomi");
        }
    }

我们都驾驭了调节器是如何去找视图之后。大家要去领悟一下View到Controller的传值和Controller到View的传值。

1、View到Controller的传值。一般有俩种。一种是用模子对象来传。一种是KEY-VALUE来传值。不过毫无疑问要保险表单成分的Name要跟参数命名对应。正是一样。

二、Controller到View的传值。一般有三种。用ViewBag传值。用Model传值。正是模型对象。还有用ViewData。

作者扩大了一个情势Aomi。然后参数为name。并由此动态类型ViewBag传到视图上。并显示出来。

控制器:

 public class Home:Controller
    {
        public ActionResult Index()
        {
            return View("Aomi");
        }

        public ActionResult Aomi(string name)
        {
            ViewBag.Name = name;
            return View("Aomi");
        }
    }

视图:

@{
    ViewBag.Title = "Aomi";
}

<h2>@ViewBag.Name</h2>

实施结果:

美高梅开户网址 8

注意:name一定要跟参数的命名一样。不然传不了。

笔者轻松的执教了弹指间关于传值的标题。现在大家要来看一下视图上所用的知识。Asp.NET
MVC的视图一般都是用razor引擎。所以读书razor语法很关键。网络上有关razor语法诸多。作者就不多说。小编简来讲之贰个事例。

    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View("Aomi");
        }

        public ActionResult Aomi(string name)
        {
            ViewBag.Name = name;
            return View("Aomi");
        }
        public ActionResult Show()
        {
            ViewBag.DataList = new List<string>() { "a", "b", "c" };
            return View();
        }
    }

Show.cshtml:

@{
    ViewBag.Title = "Show";
}

@foreach (string val in ViewBag.DataList)
{
    <b>@val</b> 
}

实践结果:

美高梅开户网址 9

其实读书Asp.NET
MVC并简单。只要理解以几点,作者相信集团开拓就从未有过什么大题目。

一.打听一下路由器的用法。

二.View和Controller之间是怎样传值的。

三.Controller是怎么着显著View的。

4.最终正是读书razor语法。

本章总结

本章主假使通晓一下Asp.NET
MVC。讲明路由器和视图与调节之间传值。能够说那是生死攸关。那么本系列就到此地了。本体系的目地不是为着教学。而是叁个指导。是小编当年读书C#时候的一个进程。最终多谢大家。

MVC, 本章简言
上1章我讲到关于Asp.NET的知识点。领悟Asp.NET基本的知识点之后,我们在来读书有关C#的M…

目录索引:《ASP.NET MVC 5高等编制程序》学习笔记

Global.asax文件

 

在讲Asp.NET
MVC在此之前大家来看一下多个文书。就是Global.asax文件。那怎么要讲这几个文件呢?而那些文件又有如何成效呢?Global.asax文件全名称为大局应用程序类。他跟Asp.NET
MVC并从未直接的关系。Asp.NET日常也会用到。想要创设他也很简短。选中项目右击》加多》新建项。

本篇内容
  1.
Global.asax文件
  2.
RouteConfig.cs文件
  3.
视图命名和寻址的规则

美高梅开户网址 10

  前面成立了二个简练的ASP.NET
MVC程序,固然整个项目一贯能够安顿运营,壹切都以依据预定好的执行。
  不过系统内部的有的细节依然须要大家通晓的,那有助于大家对一切ASP.NET
MVC程序如何行事进展系统性的敞亮。

点击增加按扭:

  当然,在那边我们只简要介绍一下其实行进程,详细的生命周期等后边再逐级学习。

美高梅开户网址 11

  除了上边介绍的Controller调节器、View视图等,大家还亟需关怀Global.asax、RouteConfig.cs以及视图命名及寻址的规则。
  (当然,在此地您只要求有个大约的认知就行了,东西不是3遍性学会并通晓的。)

双击Global.asax:

一、Global.asax文件

  私下认可成立的global.asax文件代码如下所示:

 1 public class MvcApplication : System.Web.HttpApplication
 2 {
 3     protected void Application_Start()
 4     {
 5         AreaRegistration.RegisterAllAreas();
 6         FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
 7         RouteConfig.RegisterRoutes(RouteTable.Routes);
 8         BundleConfig.RegisterBundles(BundleTable.Bundles);
 9     }
10 }

  在ASP.NET
MVC程序中,Global.asax首如若系统运转时做一些全局性的早先化操作。

  从地点的代码能够看到,它调用App_Start文件夹中的相关类来形成的这一个干活儿。
  比方用RouteConfig.RegisterRoutes()来实现路由的登记,调用FilterConfig.ResiterGlobalFilters()来成功全局过滤器的挂号等。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;

namespace WebExample
{
    public class Global : System.Web.HttpApplication
    {

        protected void Application_Start(object sender, EventArgs e)
        {

        }

        protected void Session_Start(object sender, EventArgs e)
        {

        }

        protected void Application_BeginRequest(object sender, EventArgs e)
        {

        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {

        }

        protected void Application_Error(object sender, EventArgs e)
        {

        }

        protected void Session_End(object sender, EventArgs e)
        {

        }

        protected void Application_End(object sender, EventArgs e)
        {

        }
    }
}

二、RouteConfig.cs文件

  暗许创制的RouteConfig.cs文件代码如下所示:

 1 public class RouteConfig
 2 {
 3     public static void RegisterRoutes(RouteCollection routes)
 4     {
 5         routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 6 
 7         routes.MapRoute(
 8             name: "Default",
 9             url: "{controller}/{action}/{id}",
10             defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
11         );
12     }
13 }

  这里RegisterRoutes()方法的法力正是概念路由,即定义客户端通过U途乐L访问ASP.NET
MVC程序的规则。

 

  能够小心到有一段代码“{controller}/{action}/{id}”,其实正是概念的UEvoqueL规则。

  例如,使用“

  另外,“

  关于路由规则,后边我们会单独一篇内容专门学习。

看了地点的代码。作者相信光从名字就恐怕看到一二。什么看头吧?在接纳起来实施的时候会去调用Application_Start方法并且只进行一回。而每一趟1请求的时候会去调用Application_BeginRequest方法。当用应关团的时候,会去调用Application_End。就算做B/S开拓不精晓Session的话,那么我也不知道该怎么办了。所以对于Session_Start方法调用,小编就不多说了。 是或不是感觉JAVA跟的Web.xml的监听事件有一些像啊。

3、视图命名和寻址的条条框框

  在调节器中,使用View()方法调用视图,重返和动作方法同名的视图,可是却从没显式提供视图的任务。
  其实这这里正视的正是视图的寻址规则,即会按部就班规则从分明的路子去找出那几个命名的视图。

  在ASP.NET
MVC中,有一条寻址规则,便是会从Views文件夹下和操纵器名同名的文书夹中检索(如/Views/Home)。

  由此,一般创制视图也会依照那样的寻址规则,否则将面世找不到视图的荒唐。
  举例在此间,笔者讲程序私下认可的/Views/Home/Index.cshtml视图删掉,那样,当作者访问Home/Index视图的的时候,就能够冒出如图那样的不当:
  大家也能从此发掘,它私下认可是从哪找的这几个页面从而展现出来的。

  美高梅开户网址 12

  对于一般的ASP.NET MVC程序来讲,正是如图所示的叁个管理进程:

  美高梅开户网址 13

  一. 最早先是应用程序运维、注册路由访问的规则;
  二.
当呼吁到来时,寻觅路由表,找到负担管理的调控器和操作方法,将附带的参数等提交该办法开始展览管理;
  三. 方法管理完结,依据寻址规则找到视图,由视图担当展现内定的页面。

 

Asp.NET MVC

小编在学习Asp.NET MVC的时候。visual studio的Asp.NET
MVC例子为作者做了极大的贡献。让大家看一下visual
studio的列子来打听一下Asp.NET
MVC吧。什么体统创立项目。不用作者在讲了。直接看一下新建项目的对话框吧。

美高梅开户网址 14

规定之后。会弹出下列对话框。

 美高梅开户网址 15

大家得以看来地方的多少个选项。

空:表示建构二个怎么着都没有的Asp.NET MVC。

主干:表示创立贰个最基本得以付出的Asp.NET MVC。

别的的:是面向不一致工作的例证。

作者采纳之中为Internet 应用来打探关于Asp.NET
MVC的学识。下边就是新建的体系社团。

美高梅开户网址 16

App_Data文件夹:用于存放数据文件。如SQL server的MDF文件之接近。

App_Start文件夹:那一个文件夹存放了1部分Asp.NET MVC初阶要奉行的配置类。

Content文件夹:存放一些有关大旨的文书。如CSS文件。

Controllers文件夹:存放调整器。就是MVC中的C

Filters文件夹:看名字就知晓存放过滤器了。

Images文件夹:不用看了。就存放图片。

Models文件夹:用于存放模型对象。

Scripts文件夹:用于存放JS文件。

Views文件夹:用于存放视图。

有了地方创立的列子。那对小编杰出好的一件业务。光看上边的花色布局小编至少知道一件事情。MVC中的V就在相应的Views文件夹里面,而C就在Controllers文件夹里面。那对大家来说很重大。接下来就是要明白M-V-C之间是何等体统职业。大家就足以学学到Asp.NET
MVC。Struts二在起步的时候会去加载对应的安顿文件。当然对于Asp.NET
MVC来说,也有相应的这项工作。只是加载的东西区别而以。如下。

Global.asax:

 public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();
        }
    }

上边的代码是在Global.asax文件之中的。那么小编为什么要哪出来说吧?那就是发端初叶化Asp.NET
MVC的地方。上边的总做了几件职业吗?

1.登记WebApi。对于WebApi是怎么。不精通大家有未有用过RESTful
框架。可惜只是摸底而以。

二.注册过滤器。对JAVA开辟人士来说,不明了过滤器。这就有少数过份了。

三.挂号路由器。这一个很关键。Struts2是怎样体统通过请求的U奥迪Q三L来找到呼应的Action类。没错。一定是通过struts.xml配置文件的action节点。路由器就是一定于action节点的成效了。

四.注册Bundle消息。关于Bundle是怎么样小编也不佳说。只精晓他是用来UI分界面引进CSS和JS。那年能够把多个CSS和JS绑成一同。只要引二个Bundle的UKoleosL就是把那一个些CSS和JS一同引进。

5.注册证件。关于那个的话。请读者们自行查看。反正小编未有用到过。所以不敢说。

从地点我们驾驭1件业务——请求的UQX56L是通过路由器来分析找到相应的调控器。所以读书Asp.NET
MVC就不可能不询问一下路由器是哪些样子事业的。让大家到App_Start文件夹里面去找3个叫RouteConfig的类。如下

 1 public class RouteConfig
 2     {
 3         public static void RegisterRoutes(RouteCollection routes)
 4         {
 5             routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 6 
 7             routes.MapRoute(
 8                 name: "Default",
 9                 url: "{controller}/{action}/{id}",
10                 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
11             );
12         }
13     }

地方就是布局路由器的地方。我们能够见到路由器事实是1种以设置U凯雷德L模板来管理相应的U奥迪Q5L请求。上边是每一个Asp.NET
MVC都会提供的暗许的U库罗德L模板。

name:当前路由器的名目。

url:URL模板。

defaults:UEnclaveL请求的默许值。

此处跟Struts二的作法是不一致样子。Struts二在拍卖U奇骏L请求是通对的package节点的名字和action节点的名字来分明相应的action类,再通过action节点配置音讯来实行相应的法门。而Asp.NET
MVC是通过路由器来分析,并寻找相应的调控器和调节器里面包车型大巴措施。什么体统讲吧?让自己看一下地方url的值。

"{controller}/{action}/{id}"

位置便是U奥迪Q叁L模板。纵然用户请求
= UrlParameter.Optional了吧?正是跟大家讲id是可选的。所以严俊来说action节点的效益跟Asp.NET
MVC的调节器是呼应的。都是用来调控作业终止之后要呈现的视图。并区别是调整器是一个类。让咱们看一下调节器的代码吧。那规范能够加强理解。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcExample.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your app description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
}

大家能够明白HomeController类承袭了Controller类。是或不是说承接Controller类就足以了。明显不是,小编试着把HomeController前面包车型客车Controller去掉,发掘根本找不到调控器。表达了Asp.NET
MVC依旧有2个预订——调整器要按XxxController来命名。难道就不得以让开荒职员本人来定义名字啊?作者未有说不行。只是有几许烦麻。他要用到调整器工厂。就是IControllerFactory。所以作者如故希望我们能本本分分一点吗。struts二在作业终止之后。会回来一个字符串结果来规定要去呈显的视图。struts二的视图却有二种。一样子Asp.NET
MVC他也有若干个再次来到结果。

EmptyResult:再次回到3个空的结果。就是再次来到值为void。

ContentResult:再次来到一个文书内容的结果。

JsonResult:重回二个JSON格式的结果。

ViewResult:再次回到2个视图的结果。便是类似于HTML文件。

上边我并从未任何列出来。其余的话,小编希望读者们团结去查看。好了。让大家看一下地方代码部分中有3个View()的格局。这些再次来到的是一个ViewResult型类。上面只是调用View()。那一年他会用方法名来分明相应的视图。例如index方法被调用。那么View()就能够到Views文件夹下的Home文件夹去找Index.cshtml。那么为何是Home文件夹呢?私下认可就是假如XxxController的话,便是View/Xxx上边找对应的视图。那么对于cshtml文件是怎么啊?你能够知道为跟ftl文件是3个门类的。同时在Views文件玩夹下有三个叫Shared文件夹。如下。

美高梅开户网址 17

理所当然每3个调控器在Views文件夹都会有四个相应的文件夹。文件夹名跟控制器的名字同样子。那么有未有共用的吧?没错。Shared文件夹正是用来全体调节器供用的。未来唯有三个难点了——使用其余的视图。看一下底下的图样。

美高梅开户网址 18

只要大家调用Index方法。按道理我们要去调用Index.cshtml。那么1旦要调用Aomi.cshtml什么办。如下就足以了。

 public class Home:Controller
    {
        public ActionResult Index()
        {
            return View("Aomi");
        }
    }

我们都晓得了调节器是哪些去找视图之后。大家要去精通一下View到Controller的传值和Controller到View的传值。

1、View到Controller的传值。一般有俩种。一种是用模子对象来传。一种是KEY-VALUE来传值。但是一定要确定保证表单元素的Name要跟参数命名对应。正是一样。

2、Controller到View的传值。一般有两种。用ViewBag传值。用Model传值。就是模型对象。还有用ViewData。

我扩充了一个格局Aomi。然后参数为name。并通过动态类型ViewBag传到视图上。并呈现出来。

控制器:

 public class Home:Controller
    {
        public ActionResult Index()
        {
            return View("Aomi");
        }

        public ActionResult Aomi(string name)
        {
            ViewBag.Name = name;
            return View("Aomi");
        }
    }

视图:

@{
    ViewBag.Title = "Aomi";
}

<h2>@ViewBag.Name</h2>

实施结果:

美高梅开户网址 19

留意:name一定要跟参数的命名同样。不然传不了。

小编简来说之授了一下有关传值的难题。今后大家要来看一下视图上所用的知识。Asp.NET
MVC的视图一般都以用razor引擎。所以读书razor语法很要紧。互连网上关于razor语法许多。我就不多说。笔者简来说之二个事例。

    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View("Aomi");
        }

        public ActionResult Aomi(string name)
        {
            ViewBag.Name = name;
            return View("Aomi");
        }
        public ActionResult Show()
        {
            ViewBag.DataList = new List<string>() { "a", "b", "c" };
            return View();
        }
    }

Show.cshtml:

@{
    ViewBag.Title = "Show";
}

@foreach (string val in ViewBag.DataList)
{
    <b>@val</b> 
}

执行结果:

美高梅开户网址 20

其实读书Asp.NET
MVC并简单。只要通晓以几点,笔者相信公司开辟就平昔不什么样大难题。

1.打探一下路由器的用法。

二.View和Controller之间是哪些传值的。

三.Controller是如何规定View的。

四.最后正是上学razor语法。

本章总结

本章主假诺探听一下Asp.NET
MVC。批注路由器和视图与操纵之间传值。能够说那是首要。那么本类别就到此地了。本类别的目地不是为了教学。而是3个引导。是笔者当年上学C#时候的二个历程。最终多谢咱们。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图