缺少using指令或程序集引用MVC
本文关键字:引用 MVC 程序集 using 指令 缺少 | 更新日期: 2023-09-27 18:24:41
'Enumerable'不包含'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; }
}
}
这是我的View
@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'的定义,也找不到接受'IEnumarable'类型的第一个参数的扩展方法'ClubName](是否缺少using指令或程序集引用)"
您的问题是这个。在你看来,@模型是一个数字,但你像俱乐部一样使用它。Ienumerable是一个列表,所以你需要逐项查看列表,才能访问俱乐部名称等属性。因此,如果你有多个球杆,可以在视图中使用@foreach,如果你只有一个球杆,则可以去掉@模型中的ienumerable。
查看您的视图:
@model IEnumerable<ultimateorganiser.Models.Club>
你是说模型应该是IEnumerable<Club>
。
然后,您尝试访问您模型上的属性:
@Html.DisplayNameFor(model => model.ClubName)
您的型号是IEnumerable
,而不是Club
。您需要对模型进行迭代。
"嗨,如果你想使用IEnumerable,那么添加"
@model IEnumerable<ultimateorganiser.Models.Club>
<div>
<h4>Club</h4>
<hr />
<dl class="dl-horizontal">
@foreach (var item in Model)
{
<dt>
@Html.DisplayNameFor(model => item.ClubName)
</dt>
<dd>
@Html.DisplayFor(model => item.ClubName)
</dd>
<dt>
@Html.DisplayNameFor(model => item.ClubDescription)
</dt>
<dd>
@Html.DisplayFor(model => item.ClubDescription)
</dd>
<dt>
@Html.DisplayNameFor(model => item.ClubImage)
</dt>
<dd>
@Html.DisplayFor(model => item.ClubImage)
</dd>
}
</dl>
";如果你想访问模型使用"
@model ultimateorganiser.Models.Club
<form asp-action="Create">
<div class="form-group">
<label asp-for="ClubName" class="control-label"></label>
<input asp-for="ClubName" class="form-control" />
<span asp-validation-for="ClubName" class="text-danger"></span>
</div>
</form>