2014-02-19 207 views
1

我使用actionlink將參數「代碼」傳遞給控制器​​,並在新視圖上獲取該項目的詳細信息(實際上,它是調用3個部分視圖的控制器)在@ html.actionlink中傳遞多個參數

我還需要傳遞參數「description」,但這只是一個值,需要顯示在新視圖上,並沒有用於控制器(我使用「代碼」來過濾數據庫記錄)。

@foreach (var item in Model.MyModel) 
{ 
    <tr> 
    <td> 
     @Html.ActionLink(item.code, "Index", "ControlerName", new { pos = item.code.ToString(), desc = item.desc.ToString() }, null) 
</td> 

}

此ActionLink的給我的網址/ ControlerName?POS =代碼& DESC =降序

有沒有辦法送 「遞減」 參數,這樣就不會在可見網址,但只顯示在新視圖中?

回答

2

沒有,Html.ActionLink的存在只是爲了生成一個URL和放下它錨標籤內。您應該在索引操作中重新填充索引操作的desc值。

-2

使用表單標記並將所需的所有參數傳遞給actionresult,並返回所需的其他actionresult(它將攜帶所需的url)。

razor asks for ; when doing using(Html.BeginForm())

+0

我很想聽聽其他方式ü可以傳遞參數,而不包括它的網址!既然你投了票,你能否回答或者發表評論來澄清原因? – user3311522

8

您必須像傳遞參數那樣傳遞參數,以便其他控制器和視圖知道正在保存的數據。

另一種方法是你的描述存儲在「查找表」,您可以通過id識別,所以你只需要通過id,這將是該Controller'sViewModel's責任看這件事。

@Html.ActionLink(item.code, "Index", "ControllerName", new { id=1 }, null) 

控制器:

public ActionResult Index(int id) { 
    // Go to DB and get the description by id. 
} 
+1

我的答案被標記爲答案,但你的答案更好! – rossisdead