gpt4 book ai didi

c# - foreach 语句不能对变量进行操作 MVC3 错误

转载 作者:太空宇宙 更新时间:2023-11-03 18:09:57 24 4
gpt4 key购买 nike

下面是 CourseRegisterModel 的定义:

public class CourseRegisterModel
{
public StudentModel Student { get; set; }

public CourseModel Course { get; set; }

public CourseModel Course1 { get; set; }
public CourseModel Course2 { get; set; }
public CourseModel Course3 { get; set; }
public CourseModel Course4 { get; set; }
public CourseModel Course5 { get; set; }

public List<SelectListItem> CoursesList { get; set; }

public DateTime RegisterDate { get; set; }

}

这是我在主页加载时执行的 Controller 功能:
public ActionResult Home()
{
//Retrieve all registered courses for this bloody student

ServiceCourseClient client = new ServiceCourseClient();
Course[] coursespending;
var loggedInRollNumber = Request.Cookies["RollNumber"].Value;
coursespending = client.GetPendingRegisteredCourses(loggedInRollNumber.ToString());
List<CourseRegisterModel> coursesRegisteredmodelList = new List<CourseRegisterModel>();
CourseRegisterModel CRM = null;
int i = 0;
foreach (var serviceCourseRegistered in coursespending)
{
CRM = new CourseRegisterModel();
if (i == 0)
{
CRM.Course1.Code = serviceCourseRegistered.Code;
CRM.Course1.Name = serviceCourseRegistered.Name;
}
else if (i == 1)
{
CRM.Course2.Code = serviceCourseRegistered.Code;
CRM.Course2.Name = serviceCourseRegistered.Name;
}
else if (i == 2)
{
CRM.Course3.Code = serviceCourseRegistered.Code;
CRM.Course3.Name = serviceCourseRegistered.Name;
}
else if (i == 3)
{
CRM.Course4.Code = serviceCourseRegistered.Code;
CRM.Course4.Name = serviceCourseRegistered.Name;
}
else if (i == 4)
{
CRM.Course5.Code = serviceCourseRegistered.Code;
CRM.Course5.Name = serviceCourseRegistered.Name;
}
i++;
coursesRegisteredmodelList.Add(CRM);
}

return View(coursesRegisteredmodelList);
}

这是我试图显示已注册类(class)的 View :
@model StudentRegistrationPortal.Models.CourseRegisterModel
@{
ViewBag.Title = "Welcome Student";
}

<h2>Welcome
@Context.User.Identity.Name
</h2>
@Html.ActionLink("[Sign Out]", "SignOut", "Student")
<ul>
<li>@Html.ActionLink("Register Courses", "registerCourses", "Course")</li>
</ul>

<table>
<tr>
<th>
RollNumber
</th>
<th>
Course Code
</th>
<th>
Course Name
</th>
</tr>

@foreach (var item in Model) {
<tr>
<td>
@Context.User.Identity.Name
</td>
<td>
@Html.DisplayFor(modelItem => item)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
</tr>
}

</table>

但是上面 View 上的 foreach 循环给出了以下编译时错误: foreach statement cannot operate on variables type CourseRegistrationModel beacuse it does not contain a public definition for GetEnumerator
请帮忙。

最佳答案

您的模型需要是 IEnumerable .见下文。

@model IEnumerable<StudentRegistrationPortal.Models.CourseRegisterModel>
@{
ViewBag.Title = "Welcome Student";
}

<h2>Welcome
@Context.User.Identity.Name
</h2>
@Html.ActionLink("[Sign Out]", "SignOut", "Student")
<ul>
<li>@Html.ActionLink("Register Courses", "registerCourses", "Course")</li>
</ul>

<table>
<tr>
<th>
RollNumber
</th>
<th>
Course Code
</th>
<th>
Course Name
</th>
</tr>

@foreach (var item in Model) {
<tr>
<td>
@Context.User.Identity.Name
</td>
<td>
@Html.DisplayFor(modelItem => item)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
</tr>
}

</table>

你试图做
foreach(CourseRegisterModel item in CourseRegisterModel)
{
...
}

这是不可能的,你想要。
foreach(CourseRegisterModel item in IEnumerable<CourseRegisterModel>)
{
...
}

关于c# - foreach 语句不能对变量进行操作 MVC3 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17928153/

24 4 0
文章推荐: c# - 获取 XML 元素
文章推荐: python - 在seaborn多面散点图中设置日期时间格式
文章推荐: javascript - 是否可以禁用