ASP.NET MVC Core中HelloWorldController : Controller里的Controller是什么?是否为变量声明?
解答:
HelloWorldController : Controller中的Controller是什么? 首先明确说:这绝对不是数据变量声明,咱们一步步来拆解:
在C#的ASP.NET Core MVC框架中,这里的Controller是一个基类(base class),代码里的HelloWorldController通过C#的冒号:语法,实现了对Controller类的继承。
具体来说:
- 这个
Controller类来自Microsoft.AspNetCore.Mvc命名空间,你看代码开头的using Microsoft.AspNetCore.Mvc;就是专门引入它的; - 它是ASP.NET Core MVC框架提供的核心基类,所有自定义的控制器都需要继承它(或者它的轻量子类
ControllerBase),这样你的控制器才能自动获得MVC框架的各种内置能力:比如处理HTTP请求、返回视图/JSON/字符串等响应、访问请求上下文(HttpContext)、使用模型绑定功能等等; - 举个实际的例子,你代码里的
Index()和Welcome()方法能直接返回字符串作为HTTP响应,背后就是因为继承了Controller基类,MVC框架才能识别这些方法为「动作方法(action method)」,进而处理对应的请求。
再补充一句:变量声明是在类内部用来存储数据的容器,比如public string Message { get; set; }这种形式,而这里的冒号是C#的继承语法,用来表示当前类基于已有的基类来构建,复用基类的功能和特性。
内容的提问来源于stack exchange,提问作者user8280126
相关产品推荐
相关产品推荐

