我已经在T4MVC OptionalParameter values implicitly 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>
当有人单击 Previously Closed 并转到?status=closed时,就会出现问题。当他们单击最近更新时,我希望状态参数消失(传递了一个空值)。但是 ?status=close 保留在生成的 url 中。
任何见解将不胜感激。
2012 年 10 月 16 日更新
编码:
@html.action("Profile", MVC.Profile.Index())
生成网址:
http://localhost:55059/network/ticket/14441327-128b-e111-af72-0050569e0924?Controller=profile&Action=index
这只发生在特定页面上。这其实挺危险的……