我正在尝试使用索引视图强类型化为@model IEnumerable的集合,并且还使用Model.Name(在HTML帮助器方法中为model。> model.OrganisationName)。 两者都符合我的要求。
@*@model IEnumerable<LMTLibrary.LMTUsage>*@
@model LMTLibrary.LMTUsage
<td width="25%">
@Html.LabelFor(m => m.Organisation, new { @class = "control-label col-md-2" })
</td>
<td width="25%">
@if (ViewBag.UserRoleId == 1)
{
@Html.DropDownListFor(m => m.Organisation, new SelectList(Model.LMTOrganisationList, "Organisation", "Organisation"), "All",
new { @class = "form-control", @onchange = "javascript:GetBusinessArea(this.value);" })
}
else
{
@Html.DropDownListFor(m => m.Organisation, new SelectList(Model.LMTOrganisationList, "Organisation", "Organisation"),
new { @class = "form-control", @onchange = "javascript:GetBusinessArea(this.value);" })
}
@Html.ValidationMessageFor(m => m.Organisation, "", new { @class = "text-danger" })
</td>
@foreach (var item in (IList<LMTLibrary.LMTUsage>)ViewData.Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.UserId)
</td>
<td>
@Html.DisplayFor(modelItem => item.UserName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Organisation)
</td>
<td>
@Html.DisplayFor(modelItem => item.BusinessArea)
</td>
<td>
@Html.DisplayFor(modelItem => item.Company)
</td>
<td>
@Html.DisplayFor(modelItem => item.RoleName)
</td>
<td>
@Html.ActionLink("Edit", "Edit")
</td>
</tr>
}
下面是我的控制器代码
public ActionResult Index()
{
var LMTAccessRoles = AppSettings.Get<string>("Authorization.LMTAccess");
var LMTAdminRoles = AppSettings.Get<string>("Authorization.LMTAdmin");
ViewBag.LMTAccessRoles = LMTAccessRoles;
ViewBag.LMTAdminRoles = LMTAdminRoles;
if (!AuthorizationLevel.GetSecurityLevels(User).Contains("LMTAdmin"))
return RedirectToAction("Unauthorized");
LMTUsage objLMT = new LMTUsage();
LMTDAL objLMTDAL = new LMTDAL();
List<LMTUsage> _OLLMTUsage = new List<LMTUsage>();
_OLLMTUsage = objLMTDAL.UserRoleCompany_GetAll();
return View(_OLLMTUsage.ToList());
}
哪个给我错误。 请帮助我解决问题。
答案 0 :(得分:0)
您的视图实际上是与@model LMTLibrary.LMTUsage
绑定的,而不是与@*@model IEnumerable<LMTLibrary.LMTUsage>*@
绑定的,因为它是注释。实际上,您不能将控制器绑定到多个模型。
然后从控制器中,该方法返回了意外的List<LMTUsage>
。根据您的需要,可以更改控制器以返回单个对象,也可以更改视图中的绑定。
如果您的需求是需要将视图与多个模型绑定,那么作为一种好的做法,请使用我们称为ViewModels
的方法,这些不过是对多个模型的包装。