代码之家  ›  专栏  ›  技术社区  ›  Łukasz W.

从其他区域返回视图

  •  13
  • Łukasz W.  · 技术社区  · 14 年前

    我有我的ASP.NETmvc2应用程序分为几个领域。其中一个是主目录中的默认区域,另一个是 Account

    如果他们在同一个地区,我会 return View("ViewName") 帐户

    2 回复  |  直到 8 年前
        1
  •  29
  •   Darin Dimitrov    14 年前

    可以指定视图的相对位置:

    return View("~/Views/YourArea/YourController/YourView.aspx");
    

    但是当一个视图在多个区域之间共享时,我建议您使用 ~/Views/Shared

        2
  •  6
  •   Darius    12 年前

    这是一个老问题,但我认为在MVC中仍然是一个相关的问题,因此下面是我如何以一种干巴巴的方式解决它,让您轻松地更改服务器路径,并自动更新所有相关操作:

    public class FooController : Controller
    {
    
        private ActionResult FooView(string name, string extension = "cshtml") { 
            return View("~/Areas/Bar/Views/Foo/" + name + "." + extension); }
        }
    
    
        public ActionResult SomeAction(){
    
          return FooView("AreaSpecificViewName");
    
        }
    
        public ActionResult SomeOtherAction(){
    
          return FooView("AnotherAreaSpecificViewName", "aspx");
    
        }
    
    }
    

    .cshtml )查看文件,但可以通过提供第二个参数显式设置,如中所示 SomeOtherAction() .

    这很简单,但很方便,尤其是在开发过程中,当您所在区域的路径可能会发生变化或其他事情时。

    希望这能帮助别人。