2017-04-10 47 views
0

我想根據MVC中的模型設置下拉顏色。在MVC中設置顏色DropDownListFor

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

修改類像 -

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。

希望這有助於:)

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}"}) 
+0

@SDanks讓我知道如果它的工作原理 – Usman