如何从Page.RouteData.DataTokens获取RouteValueDictionary值
我的代码:
routes.MapPageRoute("NewsDetails", "NewsDetails/{id}/{title}",
"~/NewsDetails.aspx", false,
new RouteValueDictionary { { "id", 0 },
{ "title", string.Empty } });
我想获取id和title,因为Page.RouteData.Values不起作用
感谢
答案 0 :(得分:1)
我也有这个问题; Page.RouteData.Values
未返回任何值,但我可以在DataTokens
下看到传递的值。
事实证明routes.EnableFriendlyUrls
正在弄乱我的路线映射,所以在我阅读this article by Hanselman - >之后并使用Request.GetFriendlyUrlSegments()
来获取值。
它有效,但我不想迭代所有值来分配它们(正如文章中所建议的那样)。因此,我更改了路由映射的顺序(在Request.GetFriendlyUrlSegments()
下),而不是使用RouteConfig.cs
,以便在注册了所有其他路由后注册routes.EnableFriendlyUrls(settings);
。
只有在我改变了路线的顺序之后,才从Page.RouteData.Values
答案 1 :(得分:0)
尝试改为使用Page.RouteData.Values
。
答案 2 :(得分:0)
我必须使用以下内容来访问特定的键:
template <class ContainerType>
concept PushBackContainer = requires(ContainerType a)
{
requires SequenceContainer<ContainerType>;
{ a.push_back(typename ContainerType::const_reference& v) };
{ a.push_back(typename ContainerType::value_type&& v) };
// How do you define a variable templated function:
{ template< class... Args > a.emplace_back(Args&&... args) };
}