Есть ли простой путь, как соединить два значения RouteValueDictionary для передачи параметров HTML. ActionLink

Считайте мой код, который я создал в частичном Представлении:

            <% 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, другой...) и параметр от представления при создании ссылок действия.

Я могу быть, может создать эту ссылку другим способом?

Спасибо!

8
задан Andrey Tagaew 1 April 2010 в 23:18
поделиться