在点击HTML按钮时调用控制器的特定动作(不是Submit或Form's post button)

本文关键字:Form Submit 不是 button post 按钮 HTML 调用 控制器 | 更新日期: 2023-09-27 18:01:39

当我们单击表单的提交按钮时,调用具有HTTPPost属性的控制器的操作,但是如果我想在单击普通HTML按钮时调用或执行操作该怎么办尽管以下文章

http://www.codeproject.com/Tips/198477/Calling-a-MVC-Controller-and-Action-Method-using-H

HTML按钮调用MVC控制器和动作方法

告诉方法但这两个都在视图中使用控制器名,所以视图必须知道控制器,我在寻找一个答案视图不需要知道控制器。因为视图必须独立于控制器,视图不应该知道控制器如果你知道答案请回复

在点击HTML按钮时调用控制器的特定动作(不是Submit或Form's post button)

任何将用户导向由

创建的url的表单
<a href='@Url.Action("{action}", "{controller}")'> click me </a> 

@using(BeginForm("{action}", "{controller}")

将做你想做的。

可以用

  • 按钮链接

重要的是目的地。视图不"知道"任何关于动作或控制器的事情。

要从客户端(即从视图)执行MVC操作,您需要点击URL(使用任何动词:get, post, put等)。因此,要从视图中执行一个动作,你需要知道该动作的URL,默认情况下,该URL直接映射到controllername/actionname,但如果你想在视图和控制器之间创建更多抽象,你可以重新定义它。

鉴于此,您的按钮只需要是一个链接到URL或链接到js做Ajax http请求。

希望有帮助。

在同一个控制器上不能有两个具有相同名称和相同HTTP谓词的操作。所以你的问题没有意义。您可以调用与呈现视图相同的控制器操作,而无需指定操作和控制器名称。Html.BeginForm()在不指定操作和控制器名称的情况下工作的原因是因为表单正在向服务器发送POST请求,您可以区分这两个操作。