【发布时间】:2012-10-15 21:25:57
【问题描述】:
我已经在T4MVC OptionalParameter values implied from current context 阅读了关于此的另一篇文章,我正在使用最新的 T4MVC (2.11.1),它应该已经修复了。我什至检查了它以确保它在那里——而且它是。
我仍在根据当前上下文填写可选参数。
例如:假设我有一个列表,默认情况下按某人的姓氏排序。我可以选择按名字而不是 URL 来订购
http://localhost/list/stuff?orderby=firstname
当我在那个页面中时,我想用代码返回按名字排序:
@Html.ActionLink("order by last name", MVC.List.Stuff(null))
我想要的链接很简单
http://localhost/list/stuff
不带任何参数来保持 URL 简单和简短 - 在操作中调用默认行为。但是 orderby 被保留并且 url 仍然是
http://localhost/list/stuff?orderby=firstname
任何帮助都会很棒。我知道在最一般的情况下,这确实删除了查询参数 - 也许我确实有一个没有删除它的特定情况。我发现只有当我在 RenderPartial 中包含的页面中有 URL 时才会发生这种情况。
我的实际代码是
<li>@Html.ActionLink("Recently Updated", MVC.Network.Ticket.List(Model.UI.AccountId, "LastModifiedDate", null, null, null, null, null))</li>
<li>@Html.ActionLink("Recently Created", MVC.Network.Ticket.List(Model.UI.AccountId, "CreatedDate", null, null, null, null, null))</li>
<li>@Html.ActionLink("Most Severe", MVC.Network.Ticket.List(Model.UI.AccountId, "MostSevere", null, null, null, null, null))</li>
<li>@Html.ActionLink("Previously Closed", MVC.Network.Ticket.List(Model.UI.AccountId, "LastModifiedDate", null, "Closed", null, null, null))</li>
当有人点击以前关闭并转到 ?status=closed 时会出现问题。当他们单击最近更新时,我希望状态参数消失(传递了一个空值)。但是 ?status=closed 会保留在生成的 url 中。
任何见解将不胜感激。
2012 年 10 月 16 日更新
代码:
@html.action("Profile", MVC.Profile.Index())
生成的网址:
http://localhost:55059/network/ticket/14441327-128b-e111-af72-0050569e0924?Controller=profile&Action=index
这只发生在特定页面上。这其实挺危险的……
【问题讨论】:
标签: c# asp.net-mvc url-routing t4mvc