問題描述
我知道這是不對的,但為了説明起見,我想做這樣的事情:
<%= 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。