Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mvc 3如何在类中存储路由?_C#_Asp.net Mvc 3_Routing - Fatal编程技术网

C# Mvc 3如何在类中存储路由?

C# Mvc 3如何在类中存储路由?,c#,asp.net-mvc-3,routing,C#,Asp.net Mvc 3,Routing,根据所有好的模式存储路线的最佳方式是什么 我们有一个类,它返回一个包含菜单项的列表。然后将这些项目呈现到主菜单中。将鼠标悬停在菜单中的某个项目上后,将进行ajax调用。这意味着我必须在菜单项中存储此调用的路径和参数。存储此信息的最佳方式是什么?我在考虑一个RouteValueDictionary,但如何将其中一个转换为一个功能完整的route 我们正在使用Mvc 3和C#。使用生成链接,然后存储它们。它非常灵活为什么不在需要时使用它来生成url?这可能适合您: public class Menu

根据所有好的模式存储路线的最佳方式是什么

我们有一个类,它返回一个包含菜单项的列表。然后将这些项目呈现到主菜单中。将鼠标悬停在菜单中的某个项目上后,将进行ajax调用。这意味着我必须在菜单项中存储此调用的路径和参数。存储此信息的最佳方式是什么?我在考虑一个RouteValueDictionary,但如何将其中一个转换为一个功能完整的route


我们正在使用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(见上文)。