gpt4 book ai didi

javascript - 无循环迭代 IEnumerable 模型 - ASP.NET-MVC5

转载 作者:行者123 更新时间:2023-12-02 15:58:26 28 4
gpt4 key购买 nike

我有两个记录的强类型 IEnumerable,我将其传递给 Controller ​​查看。我总是最多有两条记录。我需要以单独的形式打印这两条记录,即 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; }
}

Controller

 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给出错误;引用如下截图

enter image description here

最佳答案

如果您使用列表,则可以通过其索引访问它:

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

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

但是由于您现在通过索引访问对象,我总是建议首先检查它是否为 null,即使知道您说集合中始终有 2 个项目,但事实并非如此。不要做任何伤害检查。

更新

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

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

关于javascript - 无循环迭代 IEnumerable 模型 - ASP.NET-MVC5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31409979/

28 4 0