2013-04-11 40 views
2

我想使用按鈕而不是ActionLink來重寫下面的代碼。任何幫助將不勝感激。謝謝。ASP.NET MVC - Razor - 重載帶有動作,控制器和html屬性的按鈕

@Html.ActionLink("Test Link","Index", "Home", new { id = item.id}) 

是否有可能寫下類似的東西,還是有更好的方法嗎?我也不確定語法,所以請隨時糾正它。

<input type="button" value="Submit" onclick="location.href='@Url.Action("Index", "Home", new { id = @Model.FirstorDefault.Id.ToString()}, null)'" /> 
+0

你嘗試了一下,發現任何錯誤? – Sharun 2013-04-11 09:42:17

+1

使用按鈕輸入的目的是什麼? ActionLink應該沒問題,你可以用CSS來設計它看起來像一個按鈕。 – laszlokiss88 2013-04-11 09:49:33

+0

沒有錯誤,但我在控制器的參數中找不到任何數據。它全部爲空。是的,我可以使用ActionLink,但我只是在學習MVC,所以想知道是否有超載按鈕。此後我正在考慮定製助手。如果可能,請隨時給我一個創建像@ html.button這樣的自定義助手的小例子。謝謝 – Ren 2013-04-11 09:58:46

回答

7

將它寫爲錨標籤,因爲您似乎想要在點擊按鈕時重定向用戶。如果您願意,您可以輕鬆地將錨點設計爲看起來像一個按鈕。

<a href="@Url.Action("Index", "Home", 
     new { id = Model.FirstorDefault.Id.ToString()})">Submit</a> 

而現在的「提交」的標題是沒有意義的,你現在正在做一個「GET」操作而不是「POST」。但是,如果你堅持使用一個按鈕,你可以這樣做:

<input type="button" value="Submit" id="btn1" /> 

// just replace zero with whatever value you need to use 
$("#btn1").click(function() { 
    window.location.replace('@Url.Action("about", "Home", new { id = 0 })'); 
}); 
+1

@ Html.ActionLink將呈現相同的錨標記。 – laszlokiss88 2013-04-11 09:48:47

+0

只有在給出的解決方案無效的情況下,您纔會退步。否則給你自己的解決方案。 @ laszlokiss88 – 2013-04-11 09:53:32

+0

謝謝。是啊。好主意,但我只是懶得做造型。我想使用jquerymobile的數據角色=「按鈕」功能..: - D ..只是想知道,是否有可能創建一個像'@ Html.Button'自定義助手,因爲剃鬚刀不提供?你能否給我一個關於如何創建一個簡單的自定義助手的小例子? – Ren 2013-04-11 09:54:20

0
<form method="get"action="/Home/Index/@Model.id"> 
    <input id="Submit1" type="submit" value="submit" /> 
</form>