gpt4 book ai didi

asp.net-mvc - mvc2.net 路由中的环境值

转载 作者:行者123 更新时间:2023-12-04 17:05:10 26 4
gpt4 key购买 nike

我在我的 global.asax 中注册了以下两条路线文件

routes.MapRoute(
"strict",
"{controller}.mvc/{docid}/{action}/{id}",
new { action = "Index", id = "", docid = "" },
new { docid = @"\d+"}
);
routes.MapRoute(
"default",
"{controller}.mvc/{action}/{id}",
new { action = "Index", id = "" },
new { docConstraint = new DocumentConstraint() }
);

我的标签条中有一个静态的“仪表板”链接,还有一些从 db 中的值构造的其他链接是代码
 <ul id="globalnav" class = "t-reset t-tabstrip-items">
<li class="bar" id = "dashboard">
<%=Html.ActionLink("dash.board", "Index", pck.Controller, new{docid =string.Empty,id = pck.PkgID }, new { @class = "here" })%>
</li>
<%
foreach (var md in pck.sysModules)
{
%>
<li class="<%=liClass%>">
<%=Html.ActionLink(md.ModuleName, md.ActionName, pck.Controller, new { docid = md.DocumentID}, new { @class = cls })%>
</li>
<%
}
%>
</ul>

现在我的发射地址是 localhost/oa.mvc/index/11明显符合第二条路线。但是当我访问任何已映射到第一条路线的页面然后返回 dash.board 时链接它告诉我 localhost/oa.mvc/7/index/11在哪里 7docid并从以前的网址中挑选。

我了解我的操作方法是在 docid 之后,并且更改它不会清除 docid。

我的问题是,我可以删除 docid在这种情况下不改变路线?

最佳答案

我有同样的“不清除”值(value)问题......

我已经进入了源代码,但我不明白将段注释为的原因://添加根本不在 URL 中的所有当前值

@ System\Web\Routing\ParsedRoute.cs , public BoundUrl Bind(RouteValueDictionary currentValues, RouteValueDictionary values, RouteValueDictionary defaultValues, RouteValueDictionary constraints)从第 91 行到第 100 行的方法

虽然在方法前面的步骤中正确处理了清除过程,但此代码将不需要的参数“重新注入(inject)”到接受值字典中!?

关于asp.net-mvc - mvc2.net 路由中的环境值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3475981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com