簡體   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