我正在一个具有多个部分视图的布局的站点上工作。这些局部视图具有连接到它们的数据库的模型。我可以单独显示部分视图,但不能在同一布局上显示。我使用了代码优先的方法,所以我有一个实体模型,其中包含我的所有模型。数据库已生成并连接。我在表格中有数据,我目前正在管理部分中显示这些数据以进行编辑和删除等。我不确定我做错了什么。这是我的布局部分调用:
<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
谢谢您的帮助!