问题描述
小弟是asp.netmvc新手,遇到一个实际问题求教。我生成一个menu菜单,采用EF生成了一个强力型的部分视图。想在其他页面使用这个菜单,出现错误。传入字典的模型项的类型为“Web_XXX.Models.IndexViewModel”,但此字典需要类型“System.Collections.Generic.IEnumerable`1[Web_XXX.Models.Channal]”的模型项。由此我想问问,大家的菜单都是怎么生成的?是强力类型的吗?怎么保证各个控制器的view都可以使用这个菜单?是怎么一个结构?
解决方案
解决方案二:
应该是你action中传给View(Model)的Model对象和cshtml中引用的对象不一致吧?
解决方案三:
引用1楼hanjun0612的回复:
应该是你action中传给View(Model)的Model对象和cshtml中引用的对象不一致吧?
您说的没错。我的设想中,menu应该是放在_layout.cshtml中的,但是这个menu是强类型的,有冲突。您一般是怎么处理menu的?还有个问题,mvc开发网站,怎么设置后台的路由变成admin/article/add的样式?需要新建area命名为admin?
解决方案四:
第一个问题,如果你在一个页面中需要用到两个对象,那么其中一个对象可以保存到View["MyModel"]中,然后在view中转换(MyModel)View["MyModel"]。这样使用。另一个,就是直接用@Model就可以了第二个问题设置路由的话,你可以到RouteConfig中,增加新的路由规则。你的可能是这样的routes.MapRoute(name:"Default",url:"admin/{controller}/{action}/{id}",defaults:new{controller="Login",action="Login",id=UrlParameter.Optional});