我对如何在我目前的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>
}
这样,如果@post.anon
是TRUE
,那么post.Username就不会显示(并且它会说“匿名”)
提前感谢任何建议/帮助/建议。
答案 0 :(得分:8)
你应该能够按照以下方式做点什么:
@(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>
}
如果需要,上面示例中的@ post.Poster已经预设了匿名。
答案 1 :(得分:0)
试试这个:
@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>
}
编辑:对不起,该行应该说:@(post.Anon == true?“匿名”:post.Post_Desc)