ASP.NET MVC控制器Controller
2024-08-31 23:32:19
控制器的定义
- MVC模式下的控制器(Controller)主要负责响应用户的输入,并且在响应时可能的修改模型(Model)。
- 之前的URL访问,通常是通过指定服务器的路径来实现,如访问URL:http://www.example.com/hello.html ,是访问域名为http://www.example.com 这台服务器上面根目录下的hello.html文件,但MVC与之不同。URL首先告知路由机制实例化哪个控制器,调用哪个方法,并为该方法提供必要的参数;然后由控制器的方法来决定使用哪个视图,并负责对该视图进行渲染。因此,在ASP.NET MVC中,URL并不与存储在Web服务器磁盘上的文件有对应的关系。
- MVC提供的是方法调用的结果,而不是动态生成的页面。
简单示例:HomeController
- 新建一个默认的ASP.NET MVC项目
- 展开项目目录下的Controller子目录,将会看到名为HomeController控制器的类(HomeController.cs)。
- 可以看到,这个类继承自Controller基类,定位到About方法,将“Your application description page”修改为任意的短语,如“My application description page,hihihi~”
- 运行项目,浏览到/Home/About,查看结果。
创建控制器
右击Controller目录->添加->控制器->MVC 5 控制器 空->添加->键入控制器名称:StoreController->添加
此时控制器的类内只有Index方法,当浏览到/Store时,调用此Index方法,选择和渲染视图。
修改控制器内的方法:将Index方法返回值改为string,并将方法内的全部代码改为“return "Hello from Store.Index()";”。添加Browse和Details方法。完成后的控制器如下:
public string Index()
{
return "Hello from Store.Index()";
} public string Browse()
{
return Hello from Store.Browse()";
} public string Details()
{
return Hello from Store.Details()";
}
运行项目,浏览/Store,/Store/Browse,/Store/Details,查看结果。
总结:如上所示,只需要浏览到/Store就可以执行StoreController类中的Index方法,浏览到/Store/Detals就可以执行Details方法,这就是所谓的路由,所有的请求都是通过控制器进行处理;此外,判断一个类是否是控制器类的惟一方法是查看该类是否继承自System.Web.Mvc.Controller
最新文章
- Web安全相关(四):过多发布(Over Posting)
- sqlserver中根据表中的配置概率取到数据
- entity framework 新手入门篇(3)-entity framework实现orderby,count,groupby,like,in,分页等
- ddms(基于 Express 的表单管理系统)源码学习
- lua以xpcall实现try/catch功能
- BZOJ1012[JSOI2008]最大数maxnumber 题解
- CentOS 7 为firewalld添加开放端口及相关资料
- [原创]cocos2d-x研习录-第二阶 概念类之节点类(CCNode)
- Web开发中错误页面的配置
- 《samba服务配置的文本》
- 【POJ1707】【伯努利数】Sum of powers
- java时间格式转换
- django-debug-toolbar
- PB数据库相关
- AppiumDriver升级到2.0.0版本引发的问题--Cannot instantiate the type AppiumDriver
- vijos 1557:bzoj:1413: [ZJOI2009]取石子游戏
- 【原创】自己动手实现JDK动态代理
- PLC漏洞问题
- Python基础(函数,函数的定义,函数的调用,函数的参数,递归函数)
- Android app内存限制OOM