2010-02-02 15 views
1

我有一個帶控制器Menucontroller的Viewpage菜單。我有一個partialView ViewItems,它被強制類型化爲帶控制器BagItem的對象BagItem。 我試圖呈現從View頁面(Menu.aspx)的局部視圖,無法呈現局部視圖。任何幫助將不勝感激。新的MVC。下面是代碼MVC - 部分視圖

Menu.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<MenuItem>>" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    OrderMenu 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2> 
     OrderMenu</h2> 
    <div> 
     <table> 
      <tr> 
       <td> 
        <% List<BagItem> sb = new List<BagItem>(); %> 
        <% Html.RenderPartial("../ShoppingBagItem/ViewItems", sb, (ViewDataDictionary)ViewData["BagItems"]);%> 
       </td> 
      </tr> 
     </table> 
    </div> 

partialView

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<GuessCafe.Library.BagItem>>" %> 
<body> 
    <div id="divLatestStocks"> 
     <%foreach (var item in Model) 
      { %> 
     <ul> 
      <li> 
       <%= item.ShoppingBagItemId %> 
      </li> 
     </ul> 

     <%} 
     %> 
    </div> 
</body> 

BagItemController

public ActionResult GetShoppingBagItems() 
{ 
    ViewData["BagItems"] = ObjectContext.BagItem.ToList(); 
    return View(ViewData["BagItems"]); 
} 
+0

發生了什麼事?是局部視圖只是沒有被呈現?你看到一個錯誤? – TJB 2010-02-02 19:59:58

回答

1

我想你想要的只是這個:

<% Html.RenderPartial("ViewItems", ViewData["BagItems"]); %> 

這是假設你的局部視圖命名爲ViewItems.ascx。

您可以從您的視圖中刪除以下行:

<% List<BagItem> sb = new List<BagItem>(); %> 

更新:你的部分觀點不應該包含<body>...</body>標籤。這些應該在母版頁上。

+0

感謝TJB,有部分觀點不被渲染。 感謝馬丁,我要是你的話,我得到的錯誤 傳遞到字典的模型項的類型爲「System.Collections.Generic.List'1 [菜單項]」,但本詞典需要類型的模型項目「System.Collections.Generic.IEnumerable'1 [項目]」 – user264670 2010-02-02 20:12:03

0
public ActionResult GetShoppingBagItems() 
{ 
    ViewData["BagItems"] = ObjectContext.BagItem.ToList(); 
    return View(ViewData["BagItems"]); 
} 

這是一個不好的做法。如果你想通過Model來查看爲什麼只使用ViewData Dictionary? 您可以簡單地寫:

 public ActionResult GetShoppingBagItems() 
{ 
    var BagItems = ObjectContext.BagItem.ToList(); 
    return View(BagItems); 
} 
+0

感謝ali62b,因爲我說我是新來的MVC,剛剛進入最佳實踐 – user264670 2010-02-02 20:16:19