我强烈输入了两个记录的IEnumerable,我将从控制器中查看这些记录。我总是有两个记录。我需要以单独的形式打印这两个记录,即HTML beginform。
我的问题是如何在不使用@for或@foreach循环的情况下打印IEnumerable Model数据?你可以使用某种索引来读取模型中的对象及其基于索引的数据???
public List<EmergencyContact> GetEmergencyContactByStudentID(int _studentID)
{
try
{
using (var _uow = new StudentProfile_UnitOfWork())
{
var _record = (from _emergencyContact in _uow.EmergencyContact_Repository.GetAll()
join _student in _uow.Student_Repository.GetAll() on _emergencyContact.StudentID equals _student.StudentID
where _emergencyContact.StudentID == _studentID
select _emergencyContact).ToList();
return _record;
}
}
catch { return null; }
}
public ActionResult EditEmergencyContact()
{
int _studentEntityID = 0;
_studentEntityID = _studentProfileServices.GetStudentIDByIdentityUserID(User.Identity.GetUserId());
List<EmergencyContact> _emergencyContactModel = new List<EmergencyContact>();
_emergencyContactModel = _studentProfileServices.GetEmergencyContactByStudentID(_stu
return PartialView("EditEmergencyContact_Partial", _emergencyContactModel);
}
@model IEnumerable<App.DAL.Model.EmergencyContact>
.............//other code
@Html.EditorFor(modelItem => model.NameOfContact, new { htmlAttributes = new { @class = "form-control" } })
上面的行@ html.editor给出错误;参考下面的截图
答案 0 :(得分:2)
如果您使用List
:
@model List<App.DAL.Model.EmergencyContact>
.............//other code
@Html.EditorFor(modelItem => model[0].NameOfContact, new { htmlAttributes = new { @class = "form-control" } })
但由于您现在通过它的索引访问该对象,我总是建议您首先查看它是否null
,甚至知道您说您将始终拥有2个项目收集,它没有做任何伤害检查。
<强>更新强>
您可以通过在Razer视图中执行以下操作来检查它是否为null:
@if(Model[0] != null)
{
@Html.EditorFor(modelItem => model[0].NameOfContact, new { htmlAttributes = new { @class = "form-control" } })
}