• Adding a Controller


    MVC代表 模型-视图-控制器 。MVC是一个良好的模式及易于测试和容易维护的架构基于MVC模式的应用程序包含有:

    • · Models: 应用程序代表数据和使用验证的逻辑强制执行业务规则类
    • · Views: 应用程序根据模板动态生成 HTML所使用的模板文件。
    • · Controllers: 处理浏览器的请求,获取数据模型,最后指定要响应浏览器请求的视图模板。

    本文章中,我们将覆盖所有的这些概念,并告诉您如何使用它们来创建一个应用程序。

    让我们先创建一个控制器类。在解决方案资源浏览器中,右键单击控制器文件夹,然后选择添加控制器选项。

    我们我把心的控制器命名为”HelloWorldController”,保留默认的Empty MVC controller模板,并点击添加。

    add controller

    请注意,在解决方案浏览器中会创建一个名为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]

    第一部分的URL确定那个控制器类会被执行。因此 /HelloWorld映射到HelloWorldController控制器类。第二部分的URL确定要执行控制器类中的那个操作方法。因此 /HelloWorld/Index,会使得HelloWorldController控制器类的Index 方法被执行。请注意,我们只需要浏览 /HelloWorld路径,默认情况下会调用Index方法。如果没有明确的指定,Index方法会默认的被控制器类调用。

    浏览http://localhost:xxxx/HelloWorld/Welcome。 Welcome方法会被运行并返回字符串:"This is the Welcome action method...”。 默认的MVC映射为/[Controller]/[ActionName]/[Parameters] 对于这个URL,控制器是HelloWorld,操作方法是Welcome,您还没有使用过URL的[Parameters] 部分。


    我们修改一下例子,以便可以通过URL传递一些参数信息给控制器类(例如, /HelloWorld/Welcome?name=Scott&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 尝试不同的值。 ASP.NET MVC model binding system 会自动根据地址栏中URL里的 querystring参数来映射到适合方法中去。

    在这两个例子中,控制器一直在做着MVC中“VC”部分的功能。 也就是视图和控制器的工作。该控制器直接返回HTML内容。一般情况下,您不会让控制器直接返回HTML,因为这样代码会变得非常的繁琐。相反,我们通常会使用单一的视图模板文件来帮助生成返回的HTML。下面让我们继续了解这是能做到的吧。

  • 相关阅读:
    LINUX开发使用的3个远程工具
    NDK 链接第三方静态库的方法
    GMap.NET 显示GIF图标的定制
    从MySQL获取数据
    web2py远程开发
    升级后,使用dynamic报错
    实用的MVVM:ImageView
    node.js 连接 mysql
    vector常见用法
    XCODE中配置使用boost
  • 原文地址:https://www.cnblogs.com/Irving/p/2804853.html
Copyright © 2020-2023  润新知