2012-10-11 46 views
1

在MVC视图中,我想从不同的控制器访问局部视图。之前,我手头解释我的问题,你应该知道一切都在我的解决方案:现在访问区域内不同控件的局部视图

Areas  
    MyArea  
     Views 
     Cont1 
      PartialPages 
      ViewImIn 
     Cont2 
      PartialPages 
       ViewICall 

,在ViewImIn.cshtml我打电话ViewIcall.cshtml这样的:

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

但我不断收到错误,指出“局部视图未找到或视图引擎不支持搜索locatio ......”

请帮助..我也试过“../Cont2/PartialPages/ViewICall”和它的变化

+0

你不会碰到这些如果您使用[T4MVC](http://t4mvc.codeplex.com/) – Dmitry

回答

2

尝试调用它像这样

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

这样的问题不起作用,它只搜索Cont1目录(及其子目录)和具有不同区域的项目的共享文件夹即主项目)..它没有检查Cont2或其子目录 – anpatel

+0

我看到,我错读了你的问题。您应该将共享视图放在共享文件夹中,以便MVC知道在哪里可以找到它。很难告诉mvc看看它通常不会在哪里。您最好的选择是将视图移动到共享文件夹中。 –

+0

我最终这样做,它的工作:D谢谢 – anpatel

0

而不必CONT2下PartialPages文件夹,你应该直接有下查看共享文件夹。然后,它应该能够直接从中发现:

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

您也可以使用它的RenderAction可能会或可能不会是你在找什么。如果Model对于ViewICall是不同的,或者你想分开模型/逻辑;那么你可以使用RenderAction,它可以让你调用Controller方法并呈现结果。如果您尝试渲染的局部视图使用与当前视图相同的模型,则使用RenderPartial。

  • Here是在一个帖子中菲尔哈克上Html.RenderAction和Html.Action
  • Here是在何时使用和的RenderAction何时使用后的RenderPartial