将 IQueryable 转换为列表并使用 foreach 进行迭代
我是 mvc 的菜鸟。我正在使用 mvc 和 linq2sql 的存储库模式 只是做一些测试来清楚地了解周围的一切。 我正在尝试从作者表中输出作者。
public class AuthorsRepository : IAuthorRepository
{
private Table<BK_Author> _authorsTable;
public IQueryable<BK_Author> Authors
{
get { return _authorsTable.AsQueryable<BK_Author>(); }
}
控制器中
public class AuthorsController : Controller
{
private IAuthorRepository _authorRepo;
public AuthorsController()
{
string connectionString = "";
_authorRepo = new AuthorsRepository(connectionString);
}
public ViewResult List()
{
return View(_authorRepo.Authors.ToList());
}
在视图部分的
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
<div class="item">
<% foreach (var k in Model)
{ %>
<%: k.Author_Name %>
<%: k.Author_email %>
<%: k.Author_phonenumber %>
<%: k.Author_Website %>
<% }%>
</div>
当我尝试运行它时,出现编译器异常
“foreach 语句无法对“BK_Author”类型的变量进行操作,因为“BK_Author”不包含“GetEnumerator”的公共定义”
I am a noob to mvc.I am using a repository pattern with linq2sql using mvc
Just doing some test to get a clear idea everything around the it.
I am trying to output authors from author table.
public class AuthorsRepository : IAuthorRepository
{
private Table<BK_Author> _authorsTable;
public IQueryable<BK_Author> Authors
{
get { return _authorsTable.AsQueryable<BK_Author>(); }
}
in the controllers
public class AuthorsController : Controller
{
private IAuthorRepository _authorRepo;
public AuthorsController()
{
string connectionString = "";
_authorRepo = new AuthorsRepository(connectionString);
}
public ViewResult List()
{
return View(_authorRepo.Authors.ToList());
}
on the view part
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
<div class="item">
<% foreach (var k in Model)
{ %>
<%: k.Author_Name %>
<%: k.Author_email %>
<%: k.Author_phonenumber %>
<%: k.Author_Website %>
<% }%>
</div>
When I try to run it I am having a compiler exception
"foreach statement cannot operate on variables of type 'BK_Author' because 'BK_Author' does not contain a public definition for 'GetEnumerator'"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
页面的模型以某种方式设置为
BK_Author
的对象,而不是AuthorsRepository
的对象。将其设置为AuthorsRepository
并使用其Authors
属性访问作者列表。Page's model is somehow set to an object of
BK_Author
and not ofAuthorsRepository
. Set it toAuthorsRepository
and access list of authors using itsAuthors
property.在您的视图页面中,您可以简单地继承这样的内容:
或者在 foreach(var k in Model) 之后,您应该将 k 命名为作者,例如:
希望这有帮助!
In your View page, you could simply inherit something like this:
or after foreach(var k in Model) you should case k to Authors like:
Hope this help!!