問題描述

我知道這是不對的,但為了說明起見,我想做這樣的事情:

<%= Html.Button("Action", "Controller") %>

我的目標是製作一個 HTML 按鈕,它將呼叫我的 MVC 控制器的動作方法。

最佳解決方案

除非您想要釋出到該操作,否則不需要使用表單。輸入按鈕 (不提交) 將會做到這一點。

<input type="button" value="Go Somewhere Else" onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />

次佳解決方案

剃刀語法在這裡:

<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />

第三種解決方案

<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" >

type = “button” 阻止頁面提交。而是執行你的行動。

第四種方案

您可以使用 Url.Action 指定生成控制器操作的 URL,因此您可以使用以下任一操作:

<form method="post" action="<%: Url.Action("About", "Home") %>">
   <input type="submit" value="Click me to go to /Home/About" />
</form>

要麼:

<form action="#">
  <input type="submit" onclick="parent.location='<%: Url.Action("About", "Home") %>';return false;" value="Click me to go to /Home/About" />
  <input type="submit" onclick="parent.location='<%: Url.Action("Register", "Account") %>';return false;" value="Click me to go to /Account/Register" />
</form>

第五種方案

嘗試這個:

@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)

這應該適合你。

第六種方案

基於以上幾個答案,您可以這樣做:

<button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />

第七種方案

HTML <button> 元素只能回發到包含它的表單。

因此,您需要製作一個 POST 操作的表單,然後在表單中放置一個<button><input type="submit" />

第八種方案

如果您收到錯誤為 「未終止的字串常量」,請使用以下剃刀語法:

<input type="button" onclick="@("location.href='"+ Url.Action("Index","Test")+ "'")" />

第九種方案

這是您如何將您的表單提交給 Razor 中的特定控制器和操作方法。

 <input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇