ActionResult с необязательными значениями маршрута, влияющими на другие ссылки действий на представлении - PullRequest
0 голосов
/ 31 августа 2010

У меня есть результат действия, который выглядит следующим образом:

 public ActionResult MyFriends(Guid? friendId)
 {
     if (friendId != null){
         return View(...);
     {
     else{
         return View(...);
     }
 }

Если указан friendId , я возвращаю определенную модель, на которую мой взгляд знает, как реагировать.В противном случае, если не указан friendId , представление отображается соответственно.

<% if (Model.Friends != null) { %>
    <h1>Your friends</h1>
    [List of friends goes here]
<% } else if (Model.FriendId != null) { %>
    <% Html.RenderAction("_FriendDetails", "friends", new { area = "friends", id = Model.FriendId }); %>
    <%= Html.ActionLink("This link should not contain friendId", "myfriends") %>
    <%= Html.ActionLink("Why does this work", "myfriends", "friends", new {friendId = (Guid?)null }, null)%>
<% } %>

Моя проблема заключается в том, что когда указан friendId , все остальные мои ссылки настраница, которая обычно указывает на / myfriends, все начинают ссылаться на / myfriends / e586cc32-5bbe-4afd-a8db-d403bad6d9e0, что затрудняет возврат к начальному выводу / myfriends.

ОБРАТИТЕ ВНИМАНИЕ, что ограничения моего проекта требуют от меня отображения этого конкретного представления.используя один вид.Обычно я создаю отдельное представление «детали», но в этом случае я использую динамическую навигацию и должен отображать оба вывода в одном представлении.

Кроме того, я нашел похожий (без ответа) вопрос здесь: ActionLink указывает на маршрут, на который не влияет текущий маршрут

1 Ответ

1 голос
/ 01 сентября 2010

Посмотрите на этот похожий вопрос:

ASP.NET MVC Html.ActionLink поддерживает значения маршрутов

...