2009-06-08 3 views
1

У меня есть простой частичный вид. Основная часть которого приведена ниже. Как я могу правильно разрешить ActionLinks, когда это частичное представление отображается на странице, управляемой другим контроллером. Другими словами - это частичное представление показывает проектные области для данного проекта. Что делать, если этот PV отображается на странице, управляемой Контроллером проекта. Поведение маршрута по умолчанию здесь будет пытаться выполнить код/​​Project/Edit или Project/Detail. Это не совсем то, что мне нужно. Вместо этого мне нужно это, чтобы перейти к/ProjectArea/Edit, например. Как это делается в этом случае?Условная маршрутизация?

<% foreach (var item in Model) { %> 

    <tr> 
     <td> 
      <%= Html.ActionLink("Edit", "Edit", new { id=item.ProjectAreaId }) %> | 
      <%= Html.ActionLink("Details", "Details", new {id=item.ProjectAreaId })%> 
     </td> 
     <td> 
      <%= Html.Encode(item.Name) %> 
     </td> 
    </tr> 

<% } %> 

ответ

3

Вам необходимо использовать перегрузку ActionLink, которая принимает строку контроллера. Я думаю, что это подпись выглядит следующим образом:

HtmlHelper.ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes) 

Есть ли свойство на объекте «элемент», который вы могли бы использовать, чтобы различить controllerName? Может быть, установить другое контрольное значение в контроллере, которое вы можете ввести в качестве имени контроллера ...?

HTHS, Чарльз

+1

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

Смежные вопросы