调用另一个控制器并为被调用的控制器操作MVC ASP.NET使用不同的布局

时间:2014-09-16 15:10:43

标签: c# asp.net asp.net-mvc razor

是MVC ASP.Net的新手。我想从另一个控制器调用一个动作方法,并使用不同的布局页面。

我的视图/共享文件夹有两个布局页面:〜/ Views / Shared / _Layout1.cshtml和〜/ Views / Shared / _Layout2.cshtml。以下是我的代码:

//HomeController
public class HomeController : Controller
{
    public ActionResult Index(string id)
    {
        if(String.IsNullOrEmpty(id))
        {
          //Call someMethod from UserController
          //And when called, it should a different Layout page: ~/Views/Shared/_Layout2.cshtml
          return View("someMethod"); 
        }
        else
        {
          return AboutPage(id); //uses ~/Views/Shared/_Layout1.cshtml
        }
     }
    public ActionResult AboutPage(string id)
    {
       return View();
    }

 }

1 个答案:

答案 0 :(得分:2)

如果您想使用不同的布局,则可以使用View方法的重载版本:

return View("view", "_Layout1"); 

如果您想将控制流重定向到不同的控制器/操作,那么:

return RedirectToAction("action", "controller");