2012-06-23 125 views
1

我正在一個網站上有一個包含多個部分視圖的佈局。這些部分視圖具有連接到它們的數據庫的模型。我可以單獨顯示部分視圖,但不能在同一個佈局上顯示。我使用了代碼優先的方法,所以我有一個實體模型,它包含我所有的模型。數據庫已生成並連接。我有表格中的數據,我目前在管理部分顯示這些信息以進行編輯和刪除等。我不知道我做錯了什麼。 這裏是我的佈局部分呼叫:一個視圖中的多個模型

<li>@Html.Partial("_SubCategory")</li> 

我的控制器是一個列表 - 目前在auditScheduleController:

public ActionResult _SubCategory() 
    { 
     return View(_db.SubCategories.ToList()); 
    } 

在我的部分觀點我已經把一些senarios和非似乎工作。如果我把 @model IEnumerable<QQAudit.Models.Subcategory> 我可以自己顯示頁面,並獲得子類別列表。如果我通過佈局打開它,它會出錯。說着有關

「傳遞到字典的模型產品類型‘System.Data.Entity.DynamicProxies.AuditSchedule_5218AAD34020C54DC3FF0CFD6169988BB5FED2C296ABF80AC3EFFF93441CE91B’,但這部詞典需要類型‘QQAForm.Models.SubCategory’的典範項目。

我已經看過不同的論壇和發現了一些東西,但我的一切都試過,就是在那裏,似乎以某種方式失敗。

有趣的是我的背景是Zend的PHP,我可以做我正努力完成那裏,但不能複製吃在MVC3 C#中。

2012年8月1日

我在點是我想要添加的頁面鏈接的ID我已經改變了在Global.asax是:

  routes.MapRoute(
      "AuditSecion", // Route name 
      "{controller}/{action}/{id}/{section}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional, section = UrlParameter.Optional }, // Parameter defaults 
      new[] { "QQAForm.Controllers" } 
     ); 

我想要的鏈接來填充頁面所在的ID。所以部分看起來是這樣的:

@{ Layout = null; } 

@model IEnumerable<QQAForm.Models.SubCategory> 

@foreach (var item in Model) 
{ 

@Html.ActionLink(item.SubcategoryName, "audit", new { id = item.SubCategoryID }, null) 

} 

subcategoryID應該是部分和ID應該是頁面的ID,看起來像這樣。

http://localhost:52490/AuditSchedule/Audit/1192 

在理論上子菜單的鏈接應該是

http://localhost:52490/AuditShedule/Audit/1192/1 

感謝您的幫助!

+0

好了,這是一個稍微複雜的問題的頂部。我的觀點有5個方面。標題,側面菜單部分,頂部區域部分,底部區域是內容主體。我現在擁有它的時候,在審計列表中,視圖用頂部局部填充選定的記錄。無論網頁上做了什麼,我都希望它留在那裏。側面菜單是從一個子類別表中填充的,我想在佈局的底部或正文中顯示一個表單。現在,字符串是記錄ID,如果我有一個鏈接菜單來改變每個問題的形式(這也是在一張表中,這將改變和我的審計記錄。 –

回答

2

問題是你調用局部視圖的方式。 Html.Partial需要視圖名稱和模型;因爲你沒有通過一個模型,它正在退出。 (您似乎希望您的代碼調用名爲 _SubCategory的動作,但實際上它試圖調用局部視圖,名爲 _SubCategory。)嘗試顯式傳遞模型(如果您的模型中有該模型):

@Html.Partial("_SubCategory", Model.EnumerableListOfSubCategories) 

或者,您可以使用Html。行動方法,這會使行動的結果,在當前的控制器:

@Html.Action("_SubCategory") 

我認爲第二種方法是你正在試圖做的事。

+0

該行動工作..但我在某種因爲現在出於某種原因,我的部分視圖顯示出來了一個頁眉和頁腳,就像我從佈局中調用它一樣,所以當我做了部分時,它顯示了我想要的頁眉和頁腳的位置。關閉視覺工作室,並重新啓動,看看它是否照顧它 –

1

嘗試把

@{ Layout = null; } 

在你_subcategory視圖

+0

謝謝你的工作!我不知道爲什麼我需要把它之前沒有這樣做。 –