ASP.NET MVC开发专题博客

ASP.NET MVC开发专题博客,为您精选ASP.NET MVC开发教程,助您开发愉快!

公告信息
欢迎光临ASP.NET MVC开发专题博客,祝您开发愉快!
文章档案
最新评论

ASP.NET MVC 5 入门教程二:添加控制器

MVC指   模型-视图-控制器 。 MVC是一个架构良好,可测试性和易于维护的应用程序开发模式。 基于MVC模式的应用程序包含:

  • Models:类代表的应用和数据,使用强制执行业务规则,数据验证逻辑。
  • VIEWS:模板文件,您的应用程序使用动态生成HTML响应。
  • Çontrollers的类处理传入的浏览器请求,获取模型数据,然后指定视图模板返回到浏览器的响应。

我们将在本教程系列涵盖了所有这些概念,并告诉你如何使用它们来构建应用程序。

首先,让我们创建一个控制器类。    解决方案资源管理器中 ,右键单击   控制器   夹,然后点击   “添加”, 然后脚手架 。

添加脚手架对话框,单击MVC 5控制器-空 ,然后单击“ 添加”。


新的控制器的“HelloWorldController”命名,并单击“   添加 。

添加控制器

请注意,在   “解决方案资源管理器”   已经创建了一个新的文件,名为   HelloWorldController.cs。 该文件是在IDE中打开。

用下面的代码替换文件的内容。

using System.Web;
using System.Web.Mvc; 
 
namespace MvcMovie.Controllers 
{ 
    public class HelloWorldController : Controller 
    { 
        // 
        // GET: /HelloWorld/ 
 
        public string Index() 
        { 
            return "This is my <b>default</b> action..."; 
        } 
 
        // 
        // GET: /HelloWorld/Welcome/ 
 
        public string Welcome() 
        { 
            return "This is the Welcome action method..."; 
        } 
    } 
}

控制器方法将返回一个字符串的HTML作为一个例子。 该控制器被命名为   HelloWorldController   上面的第一种方法被命名为   Index 。 让我们从浏览器中调用它。 运行应用程序(按F5或Ctrl + F5)。 在浏览器中,附加的“HelloWorld”,在地址栏的路径。 (例如,在下面的插图,这是   http://localhost:1234/HelloWorld)在浏览器中的页面会看起来像下面的截图。 在上面的方法中,返回的代码的字符串直接。 你告诉系统只是返回一些HTML,它做到了!

ASP.NET MVC调用不同的控制器类(和不同的操作方法,在他们)根据传入URL。 使用ASP.NET MVC的默认URL路由逻辑使用这样的格式来决定什么代码来调用:

/[Controller]/[ActionName]/[Parameters]

您设置的格式路由在App_Start / RouteConfig.cs文件。

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

当你运行应用程序并没有提供任何URL段,默认为“家”的控制器和“索引”的操作方法,在上面的代码中的defaults部分指定。

URL的第一部分确定控制器类来执行。 所以   /的HelloWorld   映射到HelloWorldController   类。 第二URL的一部分,决定了操作方法要执行的类。 所以   / HelloWorld的/指数   会导致   Index   方法   HelloWorldController   类来执行。 请注意,我们只浏览到   /的HelloWorld      Index   默认情况下使用的方法。 这是因为一个名为Index  控制器上的,如果一个人没有明确规定的,将被称为是默认的方法。 第三部分的的URL段( Parameters )是路由数据。 在本教程中,我们将看到路由数据后。

浏览到   http://localhost:xxxx/HelloWorld/Welcome。    Welcome   方法运行和返回字符串“这是”欢迎“的操作方法......”。 默认的MVC映射   /[Controller]/[ActionName]/[Parameters] 。 此URL时,控制器   HelloWorld     Welcome   是的操作方法。 您还没有使用   [Parameters]   部分尚未网址。

让我们稍微修改的例子,你可以传递一些参数信息,从URL到控制器(例如,   / HelloWorld的/欢迎?名称=斯科特&numtimes = 4)。 改变你的   Welcome   方法包括两个参数,如下所示。 请注意,该代码使用C#的可选参数功能表示numTimes   参数默认为1,如果没有值,参数传递。

public string Welcome(string name, int numTimes = 1) {
     return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}

运行你的应用程序和浏览的例子URL(http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4)的 。 你可以尝试不同的值   name      numtimes   在URL中。 ASP.NET MVC模型绑定系统会自动命名参数映射在地址栏中输入你的方法中的参数的查询字符串。

在上面的示例中,不使用的URL段( Parameters ), namenumTimes参数作为查询字符串传递。

用下面的代码替换“欢迎”的方法:

public string Welcome(string name, int ID = 1)
{
    return HttpUtility.HtmlEncode("Hello " + name + ", ID: " + ID);
}

运行应用程序并输入以下网址:http://localhost:xxx/HelloWorld/Welcome/3?name=Rick

这一次,第三个URL段相匹配的ID ,因为Welcome操作方法有一个参数( ID )相匹配的URL规范RegisterRoutes方法。

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

在ASP.NET MVC应用程序,这是比较典型的路由数据(像我们一样用ID),比将它们作为查询字符串参数传递。 你也可以通过添加一个路由的name      numtimes   在路由数据在URL中的参数。 App_Start \的RouteConfig.cs文件中,添加“Hello”的路线:

public class RouteConfig
{
   public static void RegisterRoutes(RouteCollection routes)
   {
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

      routes.MapRoute(
          name: "Default",
          url: "{controller}/{action}/{id}",
          defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
      );

      routes.MapRoute(
           name: "Hello",
           url: "{controller}/{action}/{name}/{id}"
       );
   }
}

运行应用程序并,浏览/localhost:XXX/HelloWorld/Welcome/Scott/3 。

对于许多MVC应用程序的默认路由正常工作。 稍后您将学习本教程中通过使用模型绑定的数据,你就不必修改默认路由。

在这些例子中,控制器已做“VC”部分MVC - 也就是说,视图和控制器工作。 该控制器直接返回HTML。 按说,你不想控制器直接返回HTML,因为代码变得非常麻烦。 相反,我们通常会使用一个单独的视图模板文件来帮助生成HTML响应。 让我们来看看未来我们如何能做到这一点。

如果涉及数据库操作,推荐一款配套的ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"

2013/9/17 15:01:34 | ASP.NET MVC入门基础教程 | |

#6ウブロスーパーコピー[159.138.3.*]2019/6/14 5:03:39
当店は、ますます多くの人が選ぶ
日本的な人気と信頼を得ています!
最も安い高級アイテムは、1つを持っているに値する!
私たちの豪華なアイテム工場でオンラインストアをアウトレット
保証商品&24時間365日オンラインサービス!
芸能人愛用『大注目』
手頃な価格でお好きなもの
今、私たちは安価な高級品海外通販しています。
私たちは、デザイナーの多数な選択を運ぶ
高品質と最高の専門の顧客サービスと
最安値で販売、80%以上割引!
お得ランキング!
大ヒット激安!
海外有名,正規品激安大販売☆
アウトレット!
#5スーパーコピーブランド時計偽物N級品専門店[181.170.132.*]2018/10/4 16:35:04
日本人が経営しているスーパーコピー最高品質(N 級品)ブランド コピー新作最新入荷,ブランド コピー,スーパーコピー,スーパーコピー財布, スーパーコピー 代引き,エルメス コピー,激安ブランドの財布等素晴らしいスーパーコピーブランド専門通販店、大人気ブランドコピー時計 ショルダーバッグトートバッグ財布を海外激安通販!ブランド コピー
当店はスーパーコピー代引きを販売しているスーパーコピー時計ブランド専門店です。
N 級のパネライ時計コピー、ロレックス時計コピー、オメガ時計コピー、ウブロ時計コピー、 IWC時計コピー等。
世界一流 ブランドスーパーコピー時計を取り扱っています。
スーパーコピー時計業界最も人気のブランド(N級品)販売通販専門店、精巧に作られた のスーパーコピー財布とバッグとジュエリー、ブランド コピー
ロレックス、ヴィトン、パネライ、ウブロ、IWC 等ブランドコピー腕時計2018新作、品質保証、楽天ブランドコピーは業界最高品質に挑戦!
全商品はプロの目にも分からないスーパー コピーN品です。
#4游客[注册][115.174.68.*]2017/6/24 16:59:25
图片为什么都看不见
#3游客[注册][122.13.132.*]2014/12/25 10:53:50
注册第二个的时候为什么注册名字叫做Hello不叫HelloWorld呢
#2游客[注册][180.154.153.*]2014/11/19 20:06:20
不错啊,谢谢
#1游客[注册][218.28.137.*]2014/7/22 13:49:59
写得很基础很详细。
  • 发表评论