如何在不同的控制器中返回视图

时间:2011-03-08 00:20:40

标签: asp.net-mvc

Class Student   {
  String Name {get; set}

  //Extended property of the student
  School Shooling {get; set;}   
}


public StudentControlelr ()
{

 public SchoolInfo (int? ID)
{
      Student s = StudentRepository.GetStudentByID(id)
      Return View ("Schooling/Index", s.Schooling);
}

}

for some reason i have to make this view as a shared view 
// Views/Shared/schooling.ascx
Return View ("Schooling", s.Schooling);

这有效,但为什么不在它不同的视图文件夹中它不起作用?我在这里错过了什么吗?

请注意ASP.net新手。

亲切的问候 维奈

2 个答案:

答案 0 :(得分:3)

您可以重定向到该操作:

return RedirectToAction("Action", "Controller");

这里唯一的问题是你无法传递模型,但有几种方法可以解决这个问题:

传递参数并在加载时获取模型

return RedirectToAction("Action", "Controller", new { id = 1});

使用TempData传递模型

TempData["MyModel"] = s.Schooling;
return RedirectToAction("Action", "Controller");

答案 1 :(得分:0)

这样可行,但更好的解决方案是重定向到不同的操作:

return View ("~/Views/Schooling/Index.aspx", s.Schooling);

注意:如果您不使用ASPX视图,则需要将.aspx更改为您的视图扩展名。