2011-06-17 160 views
0

我在編輯窗體中的應用程序中有一個下拉列表。 但是我錯了。ASP.NET MVC DropDownList和HTML屬性


HomeController.cs

 ViewData["RealizatorID"] = from r in db.tGlavnas 
      select new SelectListItem { Text = r.Realizator.ImeRealizatora, 
      Value = r.Realizator.ImeRealizatora, Selected = (r.RealizatorID == id) }; 

Edit.aspx

 <div class="editor-label"> 
      <%: Html.LabelFor(model => model.RealizatorID) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.DropDownList("RealizatorID")%> 
      <%: Html.ValidationMessageFor(model => model.RealizatorID) %> 
     </div> 

當錄製改變我n Edit.aspx頁面報告以下錯誤給我:

沒有類型爲'IEnumerable'的ViewData項具有'RealizatorID'鍵。

+0

OK,我看到你的操作方法的全部代碼。所以自然的跟進是你把你的觀點的完整代碼。你的觀點在哪裏發佈?看起來你沒有在提交之後設置viewdata。 – Francisco

回答

0

我建議你做到以下幾點:

控制器:

ViewData["SelRealizator"] = from r in db.tGlavnas 
      select new SelectListItem { Text = r.Realizator.ImeRealizatora, 
      Value = r.Realizator.ImeRealizatora, Selected = (r.RealizatorID == id) }; 

查看:

<div class="editor-label"> 
    <%: Html.LabelFor(model => model.RealizatorID) %> 
</div> 
<div class="editor-field"> 
    <%: Html.DropDownListFor(model => model.RealizatorID, ViewData["SelRealizator"] as IEnumerable<SelectListItem>)%> 
    <%: Html.ValidationMessageFor(model => model.RealizatorID) %> 
</div> 
+0

不幸的是,當我寫這個時,錯誤是: 沒有類型爲'IEnumerable '的ViewData項具有'RealizatorID'鍵。 –

+0

對不起,我的意思是DropDownListFor(在答案中編輯) – Francisco

+0

我知道這一點,但不工作... –

0

全碼:

public ActionResult Edit(int id) 
    { 
     var log = db.tGlavnas.Single(lo => lo.RedniBroj == id); 

     ViewData["SelRealizator"] = from r in db.tGlavnas select new SelectListItem { Text = r.Realizator.ImeRealizatora, Value = r.Realizator.ImeRealizatora, Selected = (r.RealizatorID == id) }; 
     return View(log); 
    } 

我不寫帖子方法呢。

0

Edit.aspx

<h2>Edit</h2> 
<% using (Html.BeginForm()) {%> 
    <%: Html.ValidationSummary(true) %> 

    <fieldset> 
     <legend>Fields</legend> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.RedniBroj) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.RedniBroj) %> 
      <%: Html.ValidationMessageFor(model => model.RedniBroj) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.DatumPrijema) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.DatumPrijema) %> 
      <%: Html.ValidationMessageFor(model => model.DatumPrijema) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.DatumPredaje) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.DatumPredaje) %> 
      <%: Html.ValidationMessageFor(model => model.DatumPredaje) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.BrojID) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.BrojID) %> 
      <%: Html.ValidationMessageFor(model => model.BrojID) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.PredmetJavneNabavke) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.PredmetJavneNabavke) %> 
      <%: Html.ValidationMessageFor(model => model.PredmetJavneNabavke) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.VrstaID) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.VrstaID) %> 
      <%: Html.ValidationMessageFor(model => model.VrstaID) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.TipSredstvaID) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.TipSredstvaID) %> 
      <%: Html.ValidationMessageFor(model => model.TipSredstvaID) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.ProcenjenaVrednost) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.ProcenjenaVrednost) %> 
      <%: Html.ValidationMessageFor(model => model.ProcenjenaVrednost) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.PoKontuID) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.PoKontuID) %> 
      <%: Html.ValidationMessageFor(model => model.PoKontuID) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.RealizatorID) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.DropDownListFor(model => model.RealizatorID, ViewData["SelRealizator"] as 
       IEnumerable<SelectListItem>)%> 
      <%: Html.ValidationMessageFor(model => model.RealizatorID) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.PonudjacID) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.PonudjacID) %> 
      <%: Html.ValidationMessageFor(model => model.PonudjacID) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.Iznos) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.Iznos, String.Format("{0:F}", Model.Iznos)) %> 
      <%: Html.ValidationMessageFor(model => model.Iznos) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.BrojRacuna) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.BrojRacuna) %> 
      <%: Html.ValidationMessageFor(model => model.BrojRacuna) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.DatumIsplate) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.DatumIsplate, String.Format("{0:g}", Model.DatumIsplate)) %> 
      <%: Html.ValidationMessageFor(model => model.DatumIsplate) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.JavnaNabSprovPostID) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.JavnaNabSprovPostID) %> 
      <%: Html.ValidationMessageFor(model => model.JavnaNabSprovPostID) %> 
     </div> 

     <p> 
      <input type="submit" value="Save" /> 
     </p> 
    </fieldset> 

<% } %> 

<div> 
    <%: Html.ActionLink("Back to List", "Index") %> 
</div>