2012-09-24 80 views
0

我已經使用viewbag項目將DIctionary傳遞給了我的視圖。將字典鍵傳遞迴查看

在我看來,我把它們轉換回到詞典:

VAR日期= veiwbag.Dictionary的字典;

我dcitionary被設置爲: 重點=日期的字符串(「MMM YYYY」),例如 - 2012年9月 值= INT - 這是條目的數據庫計數其中的日期是匹配的。

我很高興能夠輸出這些Key值對。我需要知道的是,當用戶輸入一個條目時,我可以將字符串Key返回到一個aciton方法來檢索該字符串的所有日期。

我是新來的MVC3,所以有點失落。

我最初的想法是沿着線: (這句法可以稍微擰從內存做)

<a href="(@Href("/Posts/Previous/"+ @date.Key))">@date.key (@date.value)</a> 

我的控制器有動作:

public ActionResult Previous(string date) 
{ 
     ..work on data 

     return View(..my results); 

} 

中的ActionResult代碼很好。鏈接帶我到我的ActionResult,但字符串爲空。如何將

date.key 

作爲字符串變量存入ActionResult?我是否正在採取這種扭曲的方式?

回答

0

你可以使用HTML幫助程序生成與此控制器操作的正確鏈接:

@Html.ActionLink(
    string.Format("{0} ({1})", date.key, date.value), 
    "Previous", 
    new { date = date.Key } 
) 

如果你需要指定控制器名稱以及您可以使用以下過載:

@Html.ActionLink(
    string.Format("{0} ({1})", date.key, date.value), 
    "Previous", 
    "Posts", 
    new { date = date.Key }, 
    null 
) 

假設默認路由已經建立,這將產生以下標記:

<a href="/Posts/Previous?date=SEP%202012">SEP 2012 (9)</a> 

,並且當前一個控制器操作被調用時,它將成功通過date參數SEP 2012

+0

乾杯完美無缺 – Luthervd

0

如果使用默認路由,然後使用:

public ActionResult Previous(string id) 

或您的鏈接必須是這樣的:

/Posts/Previous?date=sometext 

,但更好的解決辦法是使用@Html.ActionLink

@Html.ActionLink(String.Format("{0} ({1})", date.key, date.value), "Previous", "Posts", new { data = date.Key }, null)