我的网站有一栏显示新闻。带有这些包含“奖品”一词的新闻的 DIV-s 必须涂成绿色。(如果一个人创建了一条记录(一条新闻)而没有指定 Prize(没有“Prize”一词),则不需要绿色。但是如果一个人填写了字段 model.Prize(所以在文本中我们有一个词"Prize") div 必须涂成绿色。
为了创造新闻,有一个领域model.Prize
<div class="editor-field">
@Html.TextAreaFor(model => model.Prize,4,55,null)
@Html.ValidationMessageFor(model => model.Prize)
</div>
model.Prize 的值为创建新新闻记录的 Controller。
public ActionResult Create(Project project)
{
if (ModelState.IsValid)
{(some code...)
News n = new News();
n.Date = DateTime.UtcNow;
n.Description = project.Shortdescription+"\r\n\Prize:\r\n"+project.Prize;
(some code…)
NewsController.Add(db,n);
db.SaveChanges();
return RedirectToAction("Main");
}
在新闻控制器的另一种方法块中,我显示新闻:
public PartialViewResult Block()
{
List<News> news = new List<News>();
Int32 count = 0;
foreach (News n in db.News.ToList().OrderByDescending(n => n.Date))
{
if (count++ < 13) news.Add(n);
}
return PartialView(news);
对于视图块中的每个条目,都会<div class ="newsWrapper">
在其中插入新闻记录。
@foreach (var item in Model){
<div class ="newsWrapper">
<p class="newsDate">@item.Date.AddHours(4).ToString("dd.MM.yyyy HH:mm")</p>
<a href="@item.Link"> @item.Title </a>
<p>@Html.Raw(Html.Encode(item.Description).Replace("\n", "<br />"))</p>
</div>
}
我试图解决我在块视图中添加新 div 的问题:
@foreach (var item in Model)
{
<div class ="newsWrapper">
<div class="@(ViewBag.IsPrize == true ? "GreenNewsClass" : "")">
<p class="newsDate">@item.Date.AddHours(4).ToString("dd.MM.yyyy HH:mm")</p>
<a href="@item.Link"> @item.Title </a>
<p>@Html.Raw(Html.Encode(item.Description).Replace("\n", "<br />"))</p>
</div>
</div>
}
将把这个GreenNewsClass
div 涂成绿色。
ViewBag.IsPrize == true
但是如果n.Description
包含单词 Prize,我怎么能得到,ViewBag.IsPrize == false
如果不是?
我试图改变方法块:
public PartialViewResult Block()
{
List<News> news = new List<News>();
Int32 count = 0;
foreach (News n in db.News.ToList().OrderByDescending(n => n.Date))
{
if (count++ < 13) news.Add(n);
if (n.Description.Contains("Призы"))
{
ViewBag.IsPrize = true;
}
else { ViewBag.IsPrize = false; }
}
return PartialView(news);
但它将所有新闻都涂成绿色,不仅仅是那些包含“奖”字的新闻。