【发布时间】:2015-04-23 07:25:21
【问题描述】:
您好,我在 index.cshtml 页面中使用局部视图。部分视图包含一个从数据库动态绑定的下拉列表。
我不想使用 viewbag 或 viewdata 来绑定这个下拉列表。
在控制器中
// GET: Reporting/Home
public ActionResult Index()
{
var view = View();
return view;
}
public ActionResult _ReportingMenu()
{
var DashboardList = GetAllDashboards();
return View(DashboardList);
}
public IEnumerable<DashboardDefinition> GetAllDashboards()
{
return _reortDefinitionService.GetAllDashboards();
}
在 index.cshtml 中
@model IEnumerable<Portal.Domain.ReportingModule.ReportDefinition.DashboardDefinition>
@{
ViewBag.Title = "Reporting";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Reporting View</h2>
@Html.ActionLink("Add new Chart", "Create", "Chart", new { area = "Reporting" }, null)
@Html.Partial("_ReportingMenu")
在部分视图中
@model Portal.Domain.ReportingModule.ReportDefinition.DashboardDefinition
<div class="nav navbar navbar-default navbar-no-margin submenu">
@Html.DropDownList("Mobiledropdown1",IEnumerable<Model.DashboardName>)
<a id="SubMenuIntegratorNew" class="btn btn-default submenu-item" href="#">
<i class="fa fa-file-o fa-lg"></i>
<span class="submenu-item-text">New</span>
</a>
<a id="SubMenuIntegratorSave" class="btn btn-default submenu-item" href="#">
<i class="fa fa-floppy-o fa-lg"></i>
<span class="submenu-item-text">Save</span>
</a>
<a id="SubMenuIntegratorSaveAs" class="btn btn-default submenu-item" href="#">
<i class="fa fa-files-o fa-lg"></i>
<span class="submenu-item-text">Save As</span>
</a>
<a id="SubMenuIntegratorAddChart" class="btn btn-default submenu-item" href="#">
<i class="fa fa-picture-o fa-lg"></i>
<span class="submenu-item-text">Add Chart</span>
</a>
</div>
但我得到一个空模型错误。
不知道如何在局部视图中实现
【问题讨论】:
-
DropDownListFor()的第二个参数是IEnumerable<SelectListItem>(或者你需要一个名为ViewBag的属性名为Mobiledropdown1即IEnumerable<SelectListItem>)你的模型是什么(你真的有一个名为Mobiledropdown1的属性,为什么你不使用强类型助手?并显示异常的全部细节。 -
有 @Html.Partial(string viewName, object model) 所以你可以将模型传递给强类型的局部视图。
标签: c# .net asp.net-mvc asp.net-mvc-4 razor