C# Mvc 3如何在类中存储路由?
根据所有好的模式存储路线的最佳方式是什么 我们有一个类,它返回一个包含菜单项的列表。然后将这些项目呈现到主菜单中。将鼠标悬停在菜单中的某个项目上后,将进行ajax调用。这意味着我必须在菜单项中存储此调用的路径和参数。存储此信息的最佳方式是什么?我在考虑一个RouteValueDictionary,但如何将其中一个转换为一个功能完整的routeC# Mvc 3如何在类中存储路由?,c#,asp.net-mvc-3,routing,C#,Asp.net Mvc 3,Routing,根据所有好的模式存储路线的最佳方式是什么 我们有一个类,它返回一个包含菜单项的列表。然后将这些项目呈现到主菜单中。将鼠标悬停在菜单中的某个项目上后,将进行ajax调用。这意味着我必须在菜单项中存储此调用的路径和参数。存储此信息的最佳方式是什么?我在考虑一个RouteValueDictionary,但如何将其中一个转换为一个功能完整的route 我们正在使用Mvc 3和C#。使用生成链接,然后存储它们。它非常灵活为什么不在需要时使用它来生成url?这可能适合您: public class Menu
我们正在使用Mvc 3和C#。使用生成链接,然后存储它们。它非常灵活为什么不在需要时使用它来生成url?这可能适合您:
public class MenuItem
{
public string Name { get; set; }
public RouteValueDictionary RouteValues
{
get
{
return new RouteValueDictionary(
new {
controller = "Pages",
action = this.Name
});
}
}
}
在您看来,您可以这样做:
<ul>
@foreach (var menuItem in Model.MenuItems)
{
<li>@Html.RouteLink(menuItem.Name, menuItem.RouteValues)</li>
}
</ul>
@foreach(Model.MenuItems中的var menuItem)
{
- @RouteLink(menuItem.Name,menuItem.RouteValues)
}
如果只需要路径,则可以执行以下操作:
@Url.RouteUrl(menuItem.RouteValues)
这个@Url.RouteUrl(menuItem.RouteValues)就像一个符咒。现在我可以指定routevaluedictionary中的所有内容,并去掉menuItem.Name(见上文)。