簡體   English   中英

使用控制器從ASP.net中的按鈕單擊調用方法

[英]Call a method from button click in ASP.net, using controller

是ASP.net的新手。 我試圖使用一個帶有按鈕的簡單頁面視圖,然后單擊該按鈕,這將調用控制器中的方法,然后使用c#執行更多代碼和計算。

我閱讀了文章並嘗試了此方法,但似乎未調用該方法,調試器永遠不會在Controler ClickButton1方法中停止。

我的VIEW代碼

 <div> <input id="Button1" type="button" value="Button 1" onclick="ClickButton1()" /> <input id="Button2" type="button" value="Button 2" onclick="location.href='@Url.Action("Options", "Home")'" /> </div> <div> <canvas id="mapCanvas" width="500" height="150" style="border:1px solid #000000;"></canvas> </div> <script> function ClickButton1() { $.ajax({ type: "POST", url: '@Url.Action("ClickButton1", "Definition")', async: true, success: function (msg) { ServiceSucceeded(msg); }, error: function () { return "error"; } }); } </script> 

我的控制器

 namespace Traveler.Controllers { public class DefinitionController : Controller { // GET: /<controller>/ public IActionResult Index() { return View(); } // Action click on Button 1 public void ClickButton1() { Console.WriteLine("Button 1 Clicked"); } } } 

將輸入類型從提交更改為按鈕,以避免多次提交。

將您的Controllers方法標記為[HttpPost]然后重試。

如果您想知道為什么要這樣做,請閱讀以下內容:

[HttpPost]屬性告訴路由引擎將對那個操作方法的任何POST請求發送到另一個方法。 這是一種重載。

如果您想知道如何將Method標記為[HttpPost]方法,請查看以下內容:

[HttpPost]
public void ClickButton1()
{
    Console.WriteLine("Button 1 Clicked");
}

我希望這能幫到您 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM