具有可选路由值的ActionResult会影响视图上的其他操作链接

时间:2010-08-31 18:48:00

标签: asp.net-mvc views actionlink

我的动作结果如下:

 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,这使得它很难回到初始/我的朋友输出。

请注意,我的项目约束要求我使用单个视图渲染此特定视图。通常,我会创建一个单独的“详细信息”视图,但在这种情况下,我使用动态导航,并且必须在单个视图中呈现两个输出。

另外,我在这里找到了类似的(未答复的)问题:ActionLink pointing to route not affected by current route

1 个答案:

答案 0 :(得分:1)