在MVC DropDownListFor中设置颜色

时间:2017-04-10 20:31:29

标签: asp.net-mvc html.dropdownlistfor

我正在尝试根据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");
    }

我真的不懂匿名方法。 。 。

2 个答案:

答案 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");
  • 其中#SelectedReport是下拉列表的ID。

希望这会有所帮助:)

答案 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}"})