リンク プロパティを含めるようにモデルを拡張しています。リンクを生成するために、その中の他のプロパティに基づいています。
public partial class MyModelType
{
public string FilterLink
{
get
{
var u = new UrlHelper(HttpContext.Current.Request.RequestContext);
var route = new RouteValueDictionary(u.RequestContext.RouteData.Values);
route.Remove("other");
route.Add("other", null);
route.Add("id", this.Id);
return u.Action("Index", "ControllerName", route);
}
}
}
生成されたリンクは/ControllerName/1?other=2
. を取り除くとroute.Remove("other")
、マップされたルートに基づいてリンクが取得されます: /ControllerName/1/2
。ルートから削除されたときにクエリ文字列パラメーターとして使用されないようにするにはどうすればよいですか? ルート値ではありませんが、UrlHelper は何らかの形で追加しているようです。