2010-08-26 80 views
0

我不知道這是否違背了MVC的目的,但我想有一個控制器接受2個變量,但我不會將它們傳遞給網址。有沒有簡單的方法來做到這一點?ASP.NET MVC在鏈接中傳遞數據不是通過url

public ActionResult Return(string user_id, int item_id) 

這樣

<%: Html.ActionLink("Return", "Return", new {user_id = item.user_id, item_id = item.item_id}) %> 

現在我正在聯繫有一種簡單的方式,將數據上傳到控制器,而不是通過URL

回答

1

你有一個傳遞數據情侶選項,但與ActionLink不同,因爲這只是構建HTML a元素。

您可以使用SESSION將數據從控制器傳遞到控制器。只要確保你在清除那些會話變量。

您也可以只使用表格POST您的數據。

這一切都取決於你想要的接口是什麼,以及什麼時候有數據可用。

0

使用形式隱藏輸入:

<% using(Html.BeginForm()) { %> 
    <%: Html.Hidden("user_id", item.user_id) %> 
    <%: Html.Hidden("item_id", item.item_id) %> 
    <button type="submit">Return</button> 
<% } %> 

如果你不喜歡的按鈕,你可以用CSS樣式它看起來像一個鏈接。

0

使用HTTP POST,這些值可以作爲鍵值對而不是在URL中傳遞,但在大多數情況下,如果操作是冪等的,那麼最有可能使用GET,在這種情況下,別無退路;參數是路徑或查詢字符串中URL的一部分。