2012-10-11 76 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