有没有办法在mvc4 route.config中为控制器内的每个操作方法指定要使用的视图

时间:2013-04-22 18:15:41

标签: asp.net-mvc-4 asp.net-mvc-routing

我有一个视图(Layout.cshtml),其中我显示三个下拉列表和一个表,我在Homecontroller的Index()方法中执行所有操作。我想在Homecontroller中的另一个方法内进行一些数据处理在同一视图(Layout.cshtml)中显示结果,我试图在第二种方法中返回View(mydata)但不能显示同一页面,我能够做到的唯一方法是存储在tempdata中并执行RedirectToAction(“Index” “)并从其中的tempdata获取值。

route.config中是否有一种方法可以映射到第二种方法的相同视图。我的route.config看起来像这样

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

我刚接触MVC并且不知道如何使用route.config文件

1 个答案:

答案 0 :(得分:0)

您无需更改路由。 layout.cshtml的典型外观是带有一些html标签和@RenderBody的页面。但你也可以添加一些@ Html.Action()到适合你需要的布局。例如,将@ Html.Action(“DoMore”,“Home”,new {area =“”})添加到布局中,它将在每个布局渲染上执行Home控制器的DoMore操作。

<html>
  <body>
    <div>
      @Html.Action("DoMore" , "Home" , new {area=""})
    </div>
    <div>
       @RenderBody()
    </div>
  </body>
</html>