控制器构造函数中的ASP.NET MVC路由URL

ria*_*mri 1 asp.net asp.net-mvc url-routing

尝试在控制器构造函数中生成url时遇到问题

    private BreadCrumbItem breadCrumbItem;

    public SummaryController()
    {
        this.breadCrumbItem = new BreadCrumbItem { Title = "Sommaire", Url = Url.RouteUrl(new { controller = "Summary", action = "Index" }) };

    }
Run Code Online (Sandbox Code Playgroud)

问题出在Url.RouteUrl

为什么我无法在控制器中访问它?有任何解决这个问题的方法吗 ?因为否则我必须在此控制器的所有操作中添加相同的代码。

感谢帮助

mid*_*pat 5

如果我正确理解了您的问题,那么您需要这样的东西:

public class SummaryController
{
    public SummaryController()
    {

    }

    private BreadCrumbItem _breadCrumbItem = null;

    private BreadCrumbItem CrumbItem
    {
        get
        {
             if(_breadCrumbItem == null)
             {
                  _breadCrumbItem = new BreadCrumbItem { Title = "Sommaire", Url =        Url.RouteUrl(new { controller = "Summary", action = "Index" }) };
             }

             return _breadCrumbItem;
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,在每种方法中,您都可以简单地使用CrumbItem,并在第一次创建新的BreadCrumItem时使用,之后每次调用它时,它将仅返回您创建的项目。