ASP.NET MVC3 C#-foreach
我对如何在当前的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
(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放在视图中。我真的不喜欢将逻辑放在视图中,所以我将接受您的建议,非常感谢!