“ IEnumerable”不包含“ ClubName”的定义,找不到找不到接受类型为“ IEnumerable”的第一个参数的扩展方法“ ClubName”(您是否缺少using指令或程序集引用?)
这是我每次尝试运行代码时都会遇到的错误。
这是我的家庭控制器的代码
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using ultimateorganiser.Models;
using ultimateorganiser.ViewModels;
using System.Data;
namespace ultimateorganiser.Controllers
{
public class HomeController : Controller
{
public UltimateDb db = new UltimateDb();
ClubViewModels cvm = new ClubViewModels();
MemberViewModels mvm = new MemberViewModels();
//Home Page
public ActionResult Index()
{
cvm.Clubs = db.Clubs.Include("clubmembers").ToList();
cvm.NumberofClubs = cvm.Clubs.Count();
cvm.MemberCount = 0;
cvm.Clubs.ForEach(clb => cvm.MemberCount += clb.ClubMembers.Count());
ViewBag.title = "Clubs List (" + cvm.NumberofClubs + ")";
return View(cvm.Clubs);
}
这是视图模型(ClubViewModels)
using ultimateorganiser.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ultimateorganiser.ViewModels
{
public class ClubViewModels
{
public int NumberofClubs { get; set; }
public List<Club> Clubs { get; set; }
public int MemberCount { get; set; }
}
}
这是我的看法
@model IEnumerable<ultimateorganiser.Models.Club>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<div>
<h4>Club</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ClubName)
</dt>
<dd>
@Html.DisplayFor(model => model.ClubName)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ClubDescription)
</dt>
<dd>
@Html.DisplayFor(model => model.ClubDescription)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ClubImage)
</dt>
<dd>
@Html.DisplayFor(model => model.ClubImage)
</dd>
</dl>
</div>
<p>
@Html.ActionLink("Edit", "Edit", new { id = Model.ClubID }) |
@Html.ActionLink("Back to List", "Index")
</p>
当我在浏览器上运行它时,它告诉我这是“编译错误”,“'IEnumerable'不包含'ClubName'的定义,也没有扩展方法'ClubName'接受类型为'IEnumerable'的第一个参数。找到(您是否缺少using指令或程序集引用”
您的问题是这个。您认为@model是无数的,但您像俱乐部一样使用它。Ienumerable是一个列表,因此,您需要逐项浏览列表以访问俱乐部名称之类的属性。因此,如果您有多个俱乐部,请在视图中使用@foreach;如果只有一个俱乐部,请摆脱@model中的等号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句