ASP.NET MVC 5 —— 添加Controller

原文: https://www.asp.net/mvc/overview/getting-started/introduction/adding-a-controller

MVC是 模型-视图-控制器(model-view-controller)的缩写,是一种架构良好,可测试并且维护简单的编程模式

基于MVC的程序包含:

  • 模型(Models):用于的定义程序用到的数据的类,并在其中为数据添加需要的业务验证逻辑
  • 视图(Views): 程序用来动态生成HTML页面的模板文件
  • 控制器(Controllers): 处理浏览器请求,获取模型数据,并指定View模板来向浏览器返回响应

在 Solution  Explorer 中, 右键点击 Controllers 文件夹,=>Add,  => Controller.

在弹出的Add Scaffold 对话框中, 选择MVC 5  Controller - Empty,之后点击 Add.

在弹出的对话框中输入controller的name:HelloWorldController

可以看到,在项目中的Controllers文件中创建出了 HelloWorldController.cs,同时,Views文件夹中生成了HelloWorld文件夹

用以下代码替换HelloWorldController.cs的内容

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

namespace MvcMovie.Controllers
{
    public class HelloWorldController : Controller
    {
        public string Index()
        {
            return "This is my <b>default</b> action...";
        }

        public string Welcome()
        {
            return "This is the Welcome action method...";
        }
    }
}

运行程序,看到的是项目的Home页,在地址栏中添加HelloWorld (完整是 http://localhost:12174/HelloWorld ),看到的页面如下

ASP.NET MVC 根据输入的url来调用不同的controller类,ASP.NET  MVC默认的URL路由使用下面的格式:

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

可以在 App_Start/RouteConfig.cs 中设置路由格式

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

namespace MvcMovie
{
    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 }
            );
        }
    }
}

如果不指定url,默认是Home controller的Index action

URL的第一部分决定使用哪个controller,所以 /HelloWorld 映射到HelloWorldController.cs;URL的第二部分决定执行controller中的

哪一个action方法,所以 /HelloWorld/Index 会执行HelloWorldController中的Index方法(Index是默认的action方法);

在地址栏中输入http://localhost:12174/HelloWorld/Welcome ,可以看到Welcome action 方法返回的字符串

修改Welcome方法以接受URL中的参数

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

访问URL: http://localhost:12174/HelloWorld/Welcome?name=Scott&numtimes=4

修改Welcome方法:

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

修改RouteConfig.cs:

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

namespace MvcMovie
{
    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}"
            );
        }
    }
}

访问URL:http://localhost:12174/HelloWorld/Welcome/Scott/3

时间: 2024-10-22 19:56:42

ASP.NET MVC 5 —— 添加Controller的相关文章

ASP.NET MVC 5 - 添加一个模型

插件GanttCalendarPlugin安装完以后,有一个问题,就是在选择起始与结束时间的时候,为了方便有datepicker功能,如图 需要用到插件DateFieldPlugin,官网链接http://trac-hacks.org/wiki/DateFieldPlugin ASP.NET MVC 5 - 添加一个模型,码迷,mamicode.com

ASP.NET MVC中 在controller 里将 Partial View 转化为字符串的方法

namespace Common.Helper { public static class ControllerExtension { //根据部分视图名称,把部分视图内容转换成字符串 public static string RenderPartialViewToString(this Controller controller, string partialViewName) { return controller.RenderPartialViewToString(partialViewN

白话ASP.NET MVC之三:Controller是如何解析出来的

我们在上一篇文章中介绍Controller激活系统中所涉及到的一些类型,比如有关Controller类型的相关定义类型就包括了IController类型,IAsyncController类型,ControllerBase抽象类型和我们最终要使用的抽象类型Controller,这是ASP.NET MVC 框架中和Controller本身定义相关的类型.其他辅助类型,包括管理Controller的类型ControllerFactory,这个工厂负责Controller的生产和销毁.我们还涉及到另一个

[转]ASP.NET MVC 5 - 添加一个模型

在本节中,您将添加一些类,这些类用于管理数据库中的电影.这些类是ASP.NET MVC 应用程序中的"模型(Model)". 您将使用.NET Framework 数据访问技术Entity Framework,来定义和使用这些模型类.Entity Framework(通常称为 EF) 是支持代码优先 (Code First) 的开发模式.代码优先允许您通过编写简单的类来创建对象模型.(相对于"原始的CLR objects",这也被称为POCO 类)然后, 可以从您的

ASP.NET MVC系列:添加控制器

基于MVC的应用程序包含三个部分 Models(模型):对应用程序的数据进行处理 Views(视图):动态生成HTML,显示数据 Controllers(控制器):应用程序中处理用户交互的部分,处理浏览器请求,检索数据模型,然后响应给视图 添加控制器 在“解决方案”中,右键点击“Controllers”文件夹,然后依次选择“添加”,“控制器” 在”添加控制器“窗口中,将控制器名称命名为“HelloWorldController”,模板为“空 MVC 控制器”,然后点击”确定“按钮 像下面那样将V

asp.net mvc快速添加view

打开一个asp.net mvc项目 打开项目中的controller,添加一个action 3.在这个action上右键,选择Add View(添加视图) 4.确定添加 5.在相应目录就找到名为Test的view了

ASP.NET MVC 4 中 Controller 与 ApiController 做读取、新增、更新、删除 ( CRUD )

在 ASP.NET MVC 4 架构上,WebApi ( ApiController ) 较适合做数据处理与提供的动作,而 MVC 4 Web ( Controller ) 内比较要配合 View 层数据显示而做异动,这时候如果要把 ApiController 和 Controller 切开来,那这两个部分的沟通就会很常使用了.如果你是用 MVVM 的架构,在 Model-View View-Model 这两段,若是一页搜集各数据表的某些资料,那在 View 那一段就必须要与 WebApi 沟通

ASP.NET mvc下在Controller下action的跳转方式

在ASP.NET mvc下,action有多种挑战方式: return RedirectToAction("Index");//一个参数时在本Controller下 如果RedirectToAction(ActionName,ControllerName) //可以直接跳到别的Controller. return RedirectToRoute(new {controller="Home",action="Index"});//可跳到其他cont

【转】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