Asp.net mvc 4 是否有方法指定控件中每个操作方法在mvc4 route.config中使用的视图

Asp.net mvc 4 是否有方法指定控件中每个操作方法在mvc4 route.config中使用的视图,asp.net-mvc-4,asp.net-mvc-routing,Asp.net Mvc 4,Asp.net Mvc Routing,我有一个视图(Layout.cshtml),其中显示三个下拉列表和一个表,我在Homecontroller的Index()方法中执行所有操作。我想在Homecontroller的另一个方法中执行一些数据处理,并在同一个视图(Layout.cshtml)中显示结果,我尝试返回视图(mydata)在第二个方法中,但无法显示同一个页面,我唯一能做的就是将其存储在tempdata中,并执行重定向到操作(“索引”),然后从其中的tempdata获取值 route.config中是否也有方法映射到第二个方法

我有一个视图(Layout.cshtml),其中显示三个下拉列表和一个表,我在Homecontroller的Index()方法中执行所有操作。我想在Homecontroller的另一个方法中执行一些数据处理,并在同一个视图(Layout.cshtml)中显示结果,我尝试返回视图(mydata)在第二个方法中,但无法显示同一个页面,我唯一能做的就是将其存储在tempdata中,并执行重定向到操作(“索引”),然后从其中的tempdata获取值

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文件

您不需要更改路由。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>

@动作(“DoMore”,“Home”,新{area=”“})
@RenderBody()

您能为两种方法(即索引,“另一种方法”)编写代码吗?感谢您的回复,实际上,我在cshtml文件中有一个actionlink,当用户从dropdownlist中选择一个值时,它会在控制器中调用此方法,但在我在action方法中处理后,我需要在视图中显示此更新数据,直到我将更新后的数据存储在tempdata中并将其传递到Index方法中,它才会发生。如果我尝试直接从第二个操作方法调用视图,我会得到错误“视图无法直接调用,因为它调用了renderbody方法”。我在控制器返回视图的第二个操作方法中直接使用这样的数据调用视图(“_Layout”,data);不清楚您想做什么,这样传递布局似乎不正确,无论如何,我只是假设您想根据用户从下拉列表中选择的内容更改页面的一部分,我认为最好的方法是使用jquery的“更改”和“ajax”方法的混合。看看: