使用 Twitter.Bootstrap.MVC4 可以将“null”传递给ExampleLayoursRoute.config 中的客户控制器:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapNavigationRoute<HomeController>("Home Page", c => c.Index());
routes.MapNavigationRoute<CustomerController>("Customer", null) <-- pass null here
.AddChildRoute<CustomerController>("List", c => c.Index())
.AddChildRoute<CustomerController>("Add", c => c.Create())
;
}
我收到一个错误:对象引用未设置为 NavigationRouteconfigureationExtensions.cs 文件中的对象实例:
public static NamedRoute ToDefaultAction<T>(this NamedRoute route, Expression<Func<T, ActionResult>> action,string areaName) where T : IController
{
var body = action.Body as MethodCallExpression; <--- Error here
您不能添加指向同一控制器/操作的链接:
routes.MapNavigationRoute<CustomerController>("Customer", c => c.Index())
.AddChildRoute<CustomerController>("List", c => c.Index())
或者您收到错误:{“名为 'Navigation-Customer-Index' 的路由已在路由集合中。路由名称必须是唯一的。\r\n参数名称:名称”}
到目前为止,我唯一的解决方法是在控制器中添加第二个重复的 Action,并将其命名为 Index2(例如):
public ActionResult Index()
{
return View(db.Customers.Where(x => x.UserName == User.Identity.Name).ToList());
}
public ActionResult Index2()
{
return View(db.Customers.Where(x => x.UserName == User.Identity.Name).ToList());
}
有没有比复制代码或添加不必要的操作更好的方法?
谢谢,马克