Meine Site verfügt über eine Spalte, in der die Neuigkeiten angezeigt werden. Die DIV-s mit diesen Nachrichten, die das Wort "Preis" enthalten, müssen in der grünen Farbe gemalt werden. (Wenn eine Person einen Datensatz (eine Nachricht) ohne Angabe des Preises erstellt hat (ohne Wort "Preis"), ist das Grün nicht notwendig. Aber wenn eine Person das Feldmodell ausgefüllt hat. Preis (also im Text haben wir ein Wort „Preis“) die div in grüner Farbe bemalt werden müssen.C# enthält Methode
in Hinblick für die Erstellung von Nachrichten gibt es ein Feld model.Prize
<div class="editor-field">
@Html.TextAreaFor(model => model.Prize,4,55,null)
@Html.ValidationMessageFor(model => model.Prize)
</div>
der Wert model.Prize nimmt die Steuerung, die einen neuen Nachrichten-Eintrag erstellen .
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");
}
In der anderen Methode Block of News Co ntroller Ich zeige die Nachricht:
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);
Für jeden Eintrag im View-Block erzeugt <div class ="newsWrapper">
, in dem die Nachrichten Rekordeinsatz.
@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>
}
Ich habe versucht, das Problem Ich habe die neue div in der Blockansicht zu lösen:
dieses 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>
}
Die GreenNewsClass
wird malen in der grünen Farbe.
Aber wie kann ich bekommen, wenn n.Description
das Wort Prise, und ViewBag.IsPrize == false
enthält, wenn es nicht ist?
Ich versuchte, das Verfahren blockieren zu ändern:
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);
aber es zeichnet alle Nachrichten in grüner Farbe, nicht nur diejenigen, die das Wort Preis enthalten.
Ja, es funktioniert !!! Vielen Dank!!!!! – Dan
@Dylan sollten Sie dies als die richtige Antwort dann markieren, damit zukünftige Leser es verwenden können. –