繁体   English   中英

在单击HTML按钮(不提交或表单的帖子按钮)Asp.net MVC上调用控制器的特定操作

[英]Calling a specific action of a controller on the click of HTML button(Not Submit or Form's post Button) Asp.net MVC

当我们单击一个Form的提交按钮时,会调用具有HTTPPost属性的控制器的操作,但如果我想在单击普通HTML按钮时调用或执行操作,该怎么办?

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

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

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

任何将您的用户定向到由其创建的网址的表单

<a href='@Url.Action("{action}", "{controller}")'> click me </a> 

要么

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

会做你想做的。

那可以是一个

  • 形成
  • 按钮链接

这是重要的目的地。 View不会“知道”有关动作或控制器的任何信息。 帮手呢。

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

鉴于此,您的按钮只需要是指向URL的链接或链接到js以执行Ajax http请求。

希望有所帮助。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM