Считайте мой код, который я создал в частичном Представлении:
<% foreach (Customer customerInfo in Model.DataRows) {%>
<tr>
<td>
<%=Html.ActionLink(
customerInfo.FullName
, ((string)ViewData["ActionNameForSelectedCustomer"])
, JoinParameters(customerInfo.id, (RouteValueDictionary) ViewData["AdditionalSelectionParameters"])
, null)%>
</td>
<td>
<%=customerInfo.LegalGuardianName %>
</td>
<td>
<%=customerInfo.HomePhone %>
</td>
<td>
<%=customerInfo.CellPhone %>
</td>
</tr>
<%}%>
Здесь я создаю простую таблицу тот показ детали клиента.
Как можно видеть в каждой строке, я пытаюсь создать ссылку, которая перенаправит к другому действию.
То действие требует customerId и некоторых дополнительных параметров.
Дополнительные параметры отличаются для каждой страницы, где это частичное Представление использует. Так, я решил сделать Методы действия передать это дополнительные параметры в ViewData как экземпляр RouteValueDictionary.
Теперь, на представлении у меня есть проблема, я должен передать customerId и что RouteValueDictionary вместе в HTML. Метод ActionLink. Это делает меня для выяснения некоторого способа того, как объединить все это параметрические усилители в один объект (или возражают или новый экземпляр RouteValueDictionary),
Из-за пути MVC делает, я не могу создать, создают метод в codebehind классе (нет никакого codebihind в MVC), который присоединится к этому параметры.
Так, я использовал ужасный путь - ввел встроенный код:
... сценарий runat = "сервер"...
private RouteValueDictionary JoinParameters(int customerId, RouteValueDictionary defaultValues)
{
RouteValueDictionary routeValueDictionary = new RouteValueDictionary(defaultValues);
routeValueDictionary.Add("customerId", customerId);
return routeValueDictionary;
}
...script...
Этот путь очень ужасен для меня, потому что я очень не хочу использовать встроенный код в части Представления.
Мой вопрос - там любой лучший способ того, как я могу смешаться, параметры передали от действия (в ViewData, TempData, другой...) и параметр от представления при создании ссылок действия.
Я могу быть, может создать эту ссылку другим способом?
Спасибо!