我正在尝试根据MVC中的模型设置下拉颜色。
public class Viewer
{
public List<SLI> ls { get; set; }
public string SelectedReport { get; set; }
//public IEnumerable<SelectListItem> MyReports { get; set; }
public string PDFLoc { get; set; }
public List<Status> Stat { get; set; }
}
public class SLI : SelectListItem
{
public string Color { get; set; }
}
我可以设置“颜色”并将其传递给视图。但我不知道如何创建一个具有样式颜色的新DropDownListFor:红色
我尝试了各种各样的事情:
@Html.DropDownListFor(m => m.SelectedReport, new SelectList(Model.ls, "Value", "Text"), new {style = "color: "+ m=>m.ls.Color +"});
并在控制器中:
public ActionResult Viewer()
{
ViewBag.Message = "Your application description page.";
if (S.UserAuthorized())
{
Data D = new Data();
Viewer V= new Viewer();
V.ls = D.GetReportsAssignedToUser();
V.PDFLoc = "";
V.SelectedReport = "";
//Get status of reports
V.Stat = D.GetReportStatuses(V.ls);
return View(V);
}
return RedirectToAction("Index");
}
我真的不懂匿名方法。 。 。
答案 0 :(得分:0)
像 -
一样修改你的课程public class Viewer
{
public List<SLI> ls { get; set; }
public string SelectedReport { get; set; }
public string PDFLoc { get; set; }
public List<Status> Stat { get; set; }
public string DropdownColor { get; set; }
}
您可以使用Jquery -
$("#SelectedReport option").css("color","@Model.DropdownColor");
希望这会有所帮助:)
答案 1 :(得分:0)
你必须像这样创建模型
public class DDwithColor
{
public List<SelectListItem> SLI { get; set; }
public string Color { get; set; }
}
,您的Viewer
模型将
public class Viewer
{
public DDwithColor ls { get; set; }
public string SelectedReport { get; set; }
public string PDFLoc { get; set; }
public List<Status> Stat { get; set; }
}
并在Controller
var viewer = new Viewer();
var ddwithcolor = new DDwithColor();
ddwithcolor.Color = "red";
ddwithcolor.SLI= new List<SelectListItem>() { new SelectListItem() { Text = "test", Value = "1" } };
viewer.ls = ddwithcolor;
最后在view
@Html.DropDownListFor(m => m.SelectedReport, new SelectList(Model.ls.SLI, "Value", "Text"), new{ @style=$"color:{Model.ls.Color}"})