0

我已经从控制器传递给查看的两条记录的 IEnumerable 强类型。我总是最多有两条记录。我需要以单独的形式打印这两个记录,即 HTML beginform。

我的问题是如何在不使用 @for 或 @foreach 循环的情况下打印 IEnumerable 模型数据???您可以使用某种索引来读取模型中的对象及其基于索引的数据吗???

从记录中获取数据

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.editorFor 给出错误;参考截图如下

在此处输入图像描述

4

1 回答 1

2

如果您使用 a ,则可以通过它的索引访问它List

@model List<App.DAL.Model.EmergencyContact>
.............//other code

 @Html.EditorFor(modelItem => model[0].NameOfContact, new { htmlAttributes = new { @class = "form-control" } })

但是由于您现在通过它的索引访问对象,我总是建议检查它是否是null第一个,即使知道您说集合中总是有 2 个项目,它不会做任何有害检查。

更新

您可以通过在 Razer 视图中执行以下操作来检查它是否为空:

@if(Model[0] != null) 
{
    @Html.EditorFor(modelItem => model[0].NameOfContact, new { htmlAttributes = new { @class = "form-control" } })
}
于 2015-07-14T14:53:59.457 回答