Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller MVC-需要从视图调用控制器中的方法_Model View Controller_View_Controller - Fatal编程技术网

Model view controller MVC-需要从视图调用控制器中的方法

Model view controller MVC-需要从视图调用控制器中的方法,model-view-controller,view,controller,Model View Controller,View,Controller,在视图上提交页面时,我需要在控制器中调用一个方法。 我不知道该怎么做。如果您能提供一个关于如何调用控制器的小示例,我们将不胜感激。编辑:不确定您正在使用什么框架来开发应用程序,但下面是一个使用ASP.NET MVC的示例 听起来您想知道如何使用控制器中定义的操作方法来处理从视图提交的表单。本例使用Razor视图引擎。在您看来,您可以使用BeginFormhelper方法创建表单,如下所示: @using (Html.BeginForm("Action", "Controller", FormMe

在视图上提交页面时,我需要在控制器中调用一个方法。
我不知道该怎么做。如果您能提供一个关于如何调用控制器的小示例,我们将不胜感激。

编辑:不确定您正在使用什么框架来开发应用程序,但下面是一个使用ASP.NET MVC的示例

听起来您想知道如何使用控制器中定义的操作方法来处理从视图提交的表单。本例使用Razor视图引擎。在您看来,您可以使用
BeginForm
helper方法创建表单,如下所示:

@using (Html.BeginForm("Action", "Controller", FormMethod.Post)) {
   @* form elements go here *@
}
其中字符串“Action”“Controller”分别是操作方法和控制器的名称

注意,呈现的HTML在表单标记的action属性中包含/controller/action路由:

<form action="/Controller/Action" method="post">
</form>


还请注意,您不必使用助手方法,只需使用上面的HTML创建自己的表单即可。

编辑:不确定开发应用程序所使用的框架,但下面是一个使用ASP.NET MVC的示例

听起来您想知道如何使用控制器中定义的操作方法来处理从视图提交的表单。本例使用Razor视图引擎。在您看来,您可以使用
BeginForm
helper方法创建表单,如下所示:

@using (Html.BeginForm("Action", "Controller", FormMethod.Post)) {
   @* form elements go here *@
}
其中字符串“Action”“Controller”分别是操作方法和控制器的名称

注意,呈现的HTML在表单标记的action属性中包含/controller/action路由:

<form action="/Controller/Action" method="post">
</form>


还请注意,您不必使用helper方法,只需使用上面的HTML创建自己的表单即可。

例如-Ruby on Rails:

假设你有一张桌子/模型“建筑物”

您将拥有一个
建筑
模型(注意-单数)

您将拥有一个
buildingcontroller
类(在定义该控制器的文件中)

此控制器将具有多种方法,这些方法(在许多其他用途中)可以作为表单中的操作调用,即作为建筑视图的视图

rails中的表单代码是
form\u for:building
,它使用一个指向控制器方法的操作构建适当的html表单标记,该控制器方法也使用来自模型的信息

提交表单时,它会根据操作和属性知道要转到哪个控制器方法。处理后,如保存到数据库,控制器还将负责确定显示哪个视图(如错误页面、建筑物列表页面等)


正如您在rails中看到的,一旦您了解了约定,building、building和buildings的标准用法就非常方便了。

例如,Ruby on rails:

假设你有一张桌子/模型“建筑物”

您将拥有一个
建筑
模型(注意-单数)

您将拥有一个
buildingcontroller
类(在定义该控制器的文件中)

此控制器将具有多种方法,这些方法(在许多其他用途中)可以作为表单中的操作调用,即作为建筑视图的视图

rails中的表单代码是
form\u for:building
,它使用一个指向控制器方法的操作构建适当的html表单标记,该控制器方法也使用来自模型的信息

提交表单时,它会根据操作和属性知道要转到哪个控制器方法。处理后,如保存到数据库,控制器还将负责确定显示哪个视图(如错误页面、建筑物列表页面等)


正如您在rails中看到的,一旦您了解了约定,building、building和buildings的标准用法就非常方便了。

这不会打破MVC最重要的方面,即职责分离吗?视图不一定知道调用哪个控制器,它只是传递了一个模型进行渲染。最好解释一下最终目标是什么。听起来像是XY的情况。这不会打破MVC最重要的方面,即职责分离吗?视图不一定知道调用哪个控制器,它只是传递了一个模型进行渲染。最好解释一下最终目标是什么。听起来像是XY的情况。