2016-03-29 19 views
0

說我有這樣開始的表:點擊動作鏈接後,我該如何引用它的linkText?

@foreach (var item in Model) 
{ 
    <tr> 
     <td> 
      @Html.ActionLink(item.Name, "Things", new { someId = item.Id}) 
     </td> 

它讓我爲那個特定項目的看法。一旦我在單獨的.cshtml文件中,我怎樣才能引用回到此ActionLink中出現的原始「item.Name」字符串?

*解決方案編輯*

該解決方案最終看上去像這樣。

的ActionLink的:

@Html.ActionLink(item.Name, "Things", new { someId = item.Id, someName = item.Name}) 

行動:

public ActionResult Things(Guid? someId, string someName) 
... 
ViewBag.currentName = someName; 

另一種觀點認爲:

<h2>@ViewBag.currentName</h2> 

回答

1

我覺得你不必參照第一ActionLink說法。您可能會感興趣的是這個視圖的一個對象Model。當您單擊鏈接時,您將導航到您通過當前模型對象的someId - id的操作。那麼可能你應該在你的存儲器中找到一個id的對象。它將會有.Name屬性被用作ActionLink的參數。

但是如果你只需要正是你在ActionLink作爲第一個參數相同的字符串,可以是你應該重複它的路線值的任何字符串。您的Things操作不僅應接受someId參數,還應接受此字符串。之後,您應該通過ModelViewBag/ViewDictionary將此字符串傳遞給您的視圖。

+0

謝謝。我最終選擇了ViewBag方法。之前找到我的部分並未將其包含在Things操作中。 –

2

可以與該項目的名稱添加一個額外的參數

@Html.ActionLink(item.Name, "Things", new { someId = item.Id, name = item.Name}) 

對於這種方法,您需要修改控制器和模型。

+0

我想,不是你的模型,但只有控制器才能收到新的參數。一旦你有,你可以通過ViewData傳遞給下一個視圖 –

+0

這就是個人:-),我喜歡的東西在我的ViewModel,如果它可以添加 – iBoonZ

+0

謝謝。我希望我可以將兩個答案都標記爲正確,因爲我最終這樣做了,但另一個答案有助於解決額外的問題。 –