加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#包含方法

发布时间:2020-12-15 05:38:56 所属栏目:百科 来源:网络整理
导读:我的网站有一个显示新闻的列.包含“奖品”一词的DIV-s必须涂成绿色. (如果一个人创建了一个记录(一个新闻)而没有指定奖品(没有单词“Prize”),则不需要绿色.但是如果一个人填写了字段模型.Prize(所以在文本中我们有一个单词“奖”)div必须涂成绿色. 在创建新
我的网站有一个显示新闻的列.包含“奖品”一词的DIV-s必须涂成绿色. (如果一个人创建了一个记录(一个新闻)而没有指定奖品(没有单词“Prize”),则不需要绿色.但是如果一个人填写了字段模型.Prize(所以在文本中我们有一个单词“奖”)div必须涂成绿色.

在创建新闻的视图中,有一个字段模型.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+"rnPrize:rn"+project.Prize;

       (some code…)
       NewsController.Add(db,n);
       db.SaveChanges();
       return RedirectToAction("Main");
   }

在另一个方法Block of News Controller我显示新闻:

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);

对于View Block中的每个条目,创建< 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.

但是如果n.Description包含单词Prize,我如何获得ViewBag.IsPrize == true,
和ViewBag.IsPrize ==假如果不是?

我试图改变方法Block:

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);

但它用绿色描绘所有新闻,而不仅仅是那些包含奖品这个词的新闻.

解决方法

听起来你想要这样做:
@foreach (var item in Model)
{   
  <div class ="newsWrapper">
    <div class="@(item.Description.Contains("Призы") ? "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>
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读