複数の部分ビューを含むレイアウトを持つサイトで作業しています。これらの部分ビューには、データベースが接続されたモデルがあります。部分ビューを個別に表示できますが、同じレイアウトには表示できません。私はコード ファーストのアプローチを使用したので、すべてのモデルを含むエンティティ モデルを作成しました。データベースが生成され、接続されました。テーブルにデータがあり、現在、編集や削除などのために管理セクションに表示しています。何が間違っているのかわかりません。これが私のレイアウトの部分的な呼び出しです:
<li>@Html.Partial("_SubCategory")</li>
私のコントローラーはリストです-現在、auditScheduleControllerにあります:
public ActionResult _SubCategory()
{
return View(_db.SubCategories.ToList());
}
私の部分的な見方では、いくつかのシナリオを入れましたが、うまくいかないようです。置く
@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
助けてくれてありがとう!