2016-03-29 6 views
0

Скажем, у меня есть таблица, которая начинается так:После нажатия на ссылку actionlink, как мне вернуться к ее linkText?

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

И он принимает меня к мнению, для этого конкретного пункта. Как только я попаду в этот отдельный файл .cshtml, как я могу ссылаться на исходную строку «item.Name», которая появилась в этом ActionLink?

* РЕШЕНИЕ EDIT *

решение в конечном итоге глядя, как это.

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, но и эту строку. После прохождения этой строки через Model или ViewBag/ViewDictionary на ваш взгляд.

+0

Спасибо. Я в конечном итоге пошел на подход ViewBag. Часть, которая получала меня раньше, не включала ее в действие Things. –

2

Вы можете добавить дополнительный параметр с именем пункта

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

Для этого подхода вам потребуется изменить свой контроллер и модель.

+0

Я думаю, что не ваша модель, а только контроллер, чтобы получить новый параметр. После того, как вы это сделаете, вы можете передать его через ViewData в следующий вид. –

+0

Thats personal :-) Мне нравится, что вы находитесь в моей ViewModel, если его можно добавить – iBoonZ

+0

Спасибо. Хотелось бы, чтобы я мог отметить оба ответа так же корректно, как и в конечном итоге, но другой ответ помог с дополнительными проблемами. –