2010-08-31 17 views
0

J'ai un ActionResult qui ressemble à:ActionResult avec option routevalues ​​affecter les autres ActionLinks sur la vue

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

Si le friendID est fourni, je reviens un certain modèle que moi sait comment réagir. Sinon, si aucun friendId n'est donné, la vue est rendue en conséquence.

<% 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)%> 
<% } %> 

Mon problème est que lorsqu'un friendID est spécifié, tous mes autres liens sur la page qui pointent normalement à/MyFriends commencent tous un lien vers/MyFriends/e586cc32-5bbe-4afd-a8db-d403bad6d9e0 ce qui rend vraiment difficile de revenir à la première/Sortie de mes amis. VEUILLEZ NOTER que mes contraintes de projet exigent que je rende cette vue particulière en utilisant une seule vue. Normalement, je créerais une vue "détaillée" séparée, mais dans ce cas, j'utilise la navigation dynamique et je dois rendre les deux sorties dans une seule vue.

En outre, j'ai trouvé un similaire (sans réponse) question ici: ActionLink pointing to route not affected by current route

+0

S'il vous plaît montrer le code que vous utilisez dans votre vue. – Sruly

+0

Merci! J'ai mis à jour le post pour inclure ma vue. Notez le lien ActionLink sous le code RenderAction. Même si je ne spécifie pas de valeur de route pour requestId, il renvoie vers/myfriends/e586cc32-5bbe-4afd-a8db-d403bad6d9e0 –

Répondre