嗨我有問題與foreach語句。我有我的控制器的方法:foreach和GetEnumerator/asp.net mvc 2
public ActionResult ShowComments(int id)
{
EntryBox entrybox = new EntryBox();
entrybox.entry = (from e in BlogDB.Enteries
where e.id == id
select e) as Entry;
entrybox.comments = (from c in BlogDB.Comments
where c.EntryID == id
select c) as List<Comment>;
Captcha captcha = new Captcha();
ViewData.Model = entrybox;
return View();
}
我的視圖模型:
public class EntryBox
{
public Entry entry;
public List<Comment> comments;
}
而當我想以顯示我的意見名單我來,因爲這個錯誤不能:
Error 2 foreach statement cannot operate on variables of type 'void' because 'void' does not contain a public definition for 'GetEnumerator'
c:...\Views\Home\ShowComments.aspx
我的第一個觀點:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<BlogMaker_v06.viewModels.EntryBox>" %>
<%@ Import Namespace="BlogMaker_v06.Models" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentHolder" runat="server">
<% User LoggedAs = HttpContext.Current.Session["LoggedAs"] as User; %>
<div style="width: 90%">
<b>Treść komentowanego wpisu: <br /><br /></b>
<p style="text-indent: 10px; text-align: justify;">
<%= Model.entry.EntryContent.TagsParse() %>
</p>
<% Html.BeginForm("AddComment/" + ViewData["id"].ToString(), "Home");
{ %>
Write your comment: <br />
<table>
<tr><td>Name:</td><td><input type="text" name="Author" id="Author" value="<%= LoggedAs.Login %>" onfocus="javascript:this.value='';" <% if (LoggedAs.id != 2) {%> disabled <%}%>/></td></tr>
<tr><td>Website:</td><td><input type="text" name="AuthorWebsite" id="AuthorWebsite" value="http://" /></td></tr>
<tr><td>Przepisz cyframi: <%= ViewData["captcha"] %></td><td><input type="text" name="Captcha" id="Captcha" /></td></tr>
</table>
<textarea name="CommentContent" id="CommentContent" rows="5" cols="25" style="width: 100%; height: 10%; border: 1px solid #C0C0C0"></textarea><br />
<input type="submit" value="Add comment" />
<% } %>
<br /><br />
<b>Komentarze użytkowników:</b>
<% foreach (var comment in ViewData.Model.comments.Reverse())
{
Html.RenderPartial("~/Views/Home/CommentTemplate.ascx", comment);
} %>
</div>
我知道它不是好辦法顯示的數據,但我對我的refactory整個項目。 foreach顯示commentTemplate.ascx導致問題。驗證碼是我授權人的簡單方法。我相信它運作良好。
脫離主題,但你的'captcha'做了什麼?它沒有被傳遞給視圖。 – 2010-11-02 22:16:58
你可以發佈其餘的視圖嗎?你是否只循環評論? – Vishal 2010-11-02 22:17:34
忘了問......哪裏是foreach? – 2010-11-02 22:18:37