2016-05-27 2 views
-1

Ich habe diesen Fehler für eine Weile, und das ienumerable Objekt blockiert kann jemand pls helfen mir der Fehler ist in der Beschreibung .Es gibt kein ViewData-Element vom Typ 'IEnumerable <SelectListItem>' mit dem Schlüssel 'BranchQuickChange'

HTML:

@model IEnumerable<DatabaseDAL.Models.WAGTripHdr> 
<script type="text/javascript" src="~/Scripts/jquery-1.9.1.min.js"></script> 
<script type="text/javascript"> 
$("select#BranchQuickChange").change(function() { 
    var branchName = $("select#BranchQuickChange option:selected").text(); 
    alert(branchName); 
    window.location.href = '@Url.Action("QuickBranchChange", "TripSheets")?branchName=' + branchName; 
}); 
</script> 
<div class="row-fluid"> 
<div class="span4" style="margin-top: 15px"> 
    @if (User.IsInRole("Administrator") || User.IsInRole("SuperUser")) 
    { 
     <strong>Quick Switch</strong> @Html.DropDownList("BranchQuickChange",ViewBag.CompanyList as SelectList) 
    } 
</div> 

Controller:

{ 
     List<WAGBranch> listWagBranch = WAGBranchRepository.GetAllBranches(CompanyEnum.WAG).OrderBy(i => i.BRName).ToList(); 
     List<string> listCompany = new List<string>(); 
     foreach (WAGBranch branch in listWagBranch) 
     { 
      listCompany.Add(branch.BRName); // + " - " + branch.Branch); 
     } 
     //listCompany.Insert(0, "WAG HEAD OFFICE - WAG"); 
     if ((string)selected == "") selected = null; 
     ViewBag.CompanyList = new SelectList(listCompany, selected); 
    } 

Modell:

[TableNameAttribute("WAGTripHdr")] 
public class WAGTripHdr : SQLSelectUpdateInsertHelper 
{ 

    public string DebName { get; set; } 

} 

für einige Ratschläge Warten.

Antwort

0

Dieser Fehler tritt normalerweise auf, wenn die Sammlung an DropDownListFor übergeben wurde Null ist. Als Ersatz versucht der Helfer, die Optionen in ViewBag unter einem Mitglied zu finden, das nach der Eigenschaft benannt ist, d. H. ViewBag.BranchQuickChange. Wenn es dort auch nichts Brauchbares findet, gibt es auf und Sie erhalten die Ausnahme, auf die Sie verweisen.

Das heißt, es scheint, Sie sind in der Tat Einstellung ViewBag.CompanyList in Ihrer Aktion. Darüber hinaus wird es auf eine SelectList-Instanz festgelegt, sodass es in der Ansicht, in der Sie es tun, auf den Wert SelectList zurückführen sollte. Das einzige, was mir einfällt, ist, dass vielleicht eine andere Aktion als die, die Sie hier gepostet haben, geladen wird. Wenn Sie GET- und POST-Versionen dieser Aktion haben, stellen Sie sicher, dass ViewBag.CompanyList festgelegt ist. Es ist möglich, dass Sie diese Zeile nur zu einer und nicht zur anderen hinzugefügt haben.

Verwandte Themen