ASP.NET MVC3 C#-foreach

ASP.NET MVC3 C#-foreach,c#,asp.net,asp.net-mvc-3,razor,foreach,C#,Asp.net,Asp.net Mvc 3,Razor,Foreach,我对如何在当前的foreach中实现以下内容感到困惑: @foreach (var post in Model."table".Where(w => w.Private_ID == 1).OrderBy(o => o.Date)) { <div class ="post"> <fieldset> <p class="post_details">At @post.Post_Date By @post.Username</

我对如何在当前的foreach中实现以下内容感到困惑:

@foreach
(var post in Model."table".Where(w => w.Private_ID == 1).OrderBy(o => o.Date))
{
  <div class ="post">
    <fieldset>
      <p class="post_details">At @post.Post_Date By @post.Username</p>
      @post.Post_Desc
    </fieldset>
  </div>
}
@foreach
(模型中的var post。“表”。其中(w=>w.Private_ID==1)。OrderBy(o=>o.Date))
{

At@post.post\u Date By@post.Username

@post.post\u Desc }
因此,如果
@post.anon
TRUE
,post.Username将不会显示(因此它将显示“匿名”)

提前感谢您的任何建议/帮助/建议。

试试以下方法:

@foreach(var post in Model."table".Where(w => w.Private_ID == 1).OrderBy(o => o.Date))
{
    <div class ="post">
        <fieldset>
            <p class="post_details">At @post.Post_Date By (@post.Anon == true ? "Anonymous" : @post.Username)</p> 
            @post.Post_Desc
        </fieldset>
    </div>
}
@foreach(模型中的var post.“表”。其中(w=>w.Private\u ID==1)。OrderBy(o=>o.Date))
{

At@post.post\u Date By(@post.Anon==true?“匿名”):@post.Username)

@post.post\u Desc }

编辑:对不起,这行应该是:@(post.Anon==true?“匿名”:post.post_Desc)

您应该能够按照以下内容做一些事情:

@(post.anon ? "Anonymous" : post.Username)
<>虽然我会考虑在C语言中做大部分的逻辑,而不是把它放在视图中(因此,用已经完成的所有逻辑创建一个特定的视图模型)。这意味着你可以循环并不需要做任何额外的思考:

@foreach(var post in Model.Posts)
{
   <div class ="post">
      <fieldset>
         <p class="post_details">At @post.Post_Date By @post.Poster</p>
         @post.Post_Desc
      </fieldset>
   </div>
}
@foreach(Model.Posts中的var post)
{

地址为@post.post\u日期为@post.Poster

@post.post\u Desc }

上面例子中的@post.Poster已经预设为匿名,如果需要的话。

它有一个愚蠢的名字,我不想让自己难堪:)它不起作用,但我不知道它想做什么。非常感谢你!为什么post.Anon==true?您可以将其缩短为:post.Anon?是的,您可以。只要发个信就够了。这是个人的选择。为了可读性,我喜欢显式地将==true放在视图中。我真的不喜欢将逻辑放在视图中,所以我将接受您的建议,非常感谢!