从区域内访问来自不同控件的部分视图

时间:2012-10-11 19:11:56

标签: asp.net-mvc asp.net-mvc-3 razor asp.net-mvc-areas

在MVC视图中,我想从不同的控制器访问局部视图。在我解释手头的问题之前,你应该知道我的解决方案中的所有内容:

Areas      
   MyArea    
        Views
         Cont1
           PartialPages
           ViewImIn
         Cont2
            PartialPages
               ViewICall

现在,在ViewImIn.cshtml中,我像这样调用ViewIcall.cshtml:

@Html.Partial("~/Views/Cont2/PartialPages/ViewICall.cshtml", Model)

但我一直收到错误声明“未找到部分视图或视图引擎不支持搜索位置...”

我也试过“../Cont2/PartialPages/ViewICall”及其变体。

3 个答案:

答案 0 :(得分:2)

尝试像这样调用

 @{Html.RenderPartial("ViewICall");}

答案 1 :(得分:0)

您不应在Cont2下拥有PartialPages文件夹,而应直接在Views下使用Shared文件夹。然后它应该能够直接找到:

@{Html.RenderPartial("ViewICall", Model);}

答案 2 :(得分:0)

你也可以使用RenderAction,它可能是你想要的,也可能不是你想要的。如果ViewICall的Model不同,或者您想要分离Model / logic;然后你可以使用RenderAction,它允许你调用一个Controller方法并渲染结果。如果您尝试渲染的局部视图使用与当前视图相同的模型,则使用RenderPartial。

  • Here是Phil Haack关于Html.RenderAction和Html.Action的帖子
  • Here是关于何时使用RenderAction以及何时使用RenderPartial的帖子