MVC如何指定执行哪个控制器Action方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC如何指定执行哪个控制器Action方法相关的知识,希望对你有一定的参考价值。

比如有2个方法public ActionResult A()和public ActionResult B()如何指定是执行A还是B呢

因该是B把 参考技术A ActionResult A() 或 B() 其实就是URL在请求时的那个Action,例如: admin/A 或 admin/B ,admin是控制器,斜杠' / ' 后面的那个 A就是你执行的那个Action方法,在前台的html当中自己写好请求路径,还有请求方式,默认是HttpGet,在ActionResult A上方写入 [HttpGet] 表示此ActionResult只接受Get形式的请求。在控制器中请求另一个Action 就是用RedirectResult()方法,具体使用可以看方法自带的提示。 参考技术B 那要看你浏览器访问哪个了 比如locahost:控制器名/A 这不就访问A了吗? 参考技术C 看你form表单提交到哪个action了。 参考技术D 对啊
MVC的访问方式就是控制器名/方法名

框架结构

1、MVC思想是一个和成词,由Model,模型(针对数据操作部分(数据逻辑)),View,视图(针对数据显示部分(显示) ,Controller控制器(针对其他PHP代码(业务逻辑)))
2、是一个单一入口——用户必须要请求指定的控制器controller(module)和指定的方法action
3、自定义MVC框架的设定
  该框架一定是以MVC设计思想来设计的:控制器(多个),模型和视图
  项目单一入口存在:这个项目只有一个入口
  框架是区分前后台的:URL中也必须增加一个额外的参数来区分前后台
  入口文件通常什么都不做:将入口要做的安全措施交给初始化类做
  为了方便项目维护,通常会曾加配置文件(区分前后台)
  数据库模型与数据库之间还需要一层专门的执行层:DAO(data Access Object),数据接收对象:专门进行SQL的执行与解析(不组织SQL)
  需要引入模板技术:方便开发,有助于提高并发(缓存技术)
  后期可以再进行复杂度提升:公共控制器,公共模型
  真正的MVC都是类:视图也是类,视图类才能专门才做真正的视图(模板:HTML)

  MVC中有几个对应的单词讲解
  Module:模块,本质就是控制器
  Template:模板,本质就是视图
  设计框架目录结构
  MVC的本质是方便代码管理,易于维护


4、网站根目录
---- index.php入口文件
---- App项目核心目录
---- Back 后台业务目录
---- Controller控制器目录
---- Model模型目录
---- View 视图目录(分层:基于控制器名字)
---- Home 前台业务目录
---- Controller控制器目录
---- Model模型目录
---- View 视图目录
---- Config配置文件目录
---- Core 核心目录(与业务无关)
---- Vendor 外部插件目录(Smarty)
---- Public公共文件:js,CSS,image
---- Home 前台部分公共数据
---- JS
---- Style
---- Image
---- Back 前台部分公共数据
---- JS
---- Style
---- Image
Uploads 文件上传目录

以上是关于MVC如何指定执行哪个控制器Action方法的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 4 控制器扩展

超链接 MVC - 动作方法如何知道她在调用时位于哪个控制器中

框架结构

asp.net mvc如何为控制器的动作指定视图

从控制器动态渲染动作 - MVC

AspNet MVC : 操作/控制器过滤器(action filter)