2011-11-10 13 views
4
にSelectListのとエラーになっ

私は、コントローラで作成したリストがあります:私は、次のしているMVC @ Html.DropDownList ViewBag

 var PayList = new[] { 
     new ListEntry { Id = 1, Name = "" }, 
     new ListEntry { Id = 2, Name = "Yes" }, 
     new ListEntry { Id = 3, Name = "No" } 

     }; 

    ViewBag.PayList = new SelectList(PayList, "Id", "Name"); 

ビューで:

@Html.DropDownList("Pay", new SelectList(ViewBag.PayList,"Id","Name")) 

私がしようとしたときに次のように表示されます。 DataBinding: 'System.Web.Mvc.SelectListItem'に 'Id'という名前のプロパティが含まれていません。これがなぜ機能していないのか分かりません。

また、選択リストに値をデフォルト設定する方法もあります。私はそれを "Yes"にデフォルト設定するのが好きです。私はコントローラからこれを行う方法があると思った。

答えて

6

だけ

8

あなたViewBag.PayListはすでにSelectListの種類は、あなたのビューで

@Html.DropDownList("Pay", ViewBag.PayList) 

を使用しています。 (私が今までViewBagを使用していないので、私は

@Html.DropDownList("Pay", ViewBag.PayList) 

または

@Html.DropDownList("Pay", ViewBag.PayList as SelectList) 

:私は二回SelectListを作成する理由は表示されませんので、それだけではありませんあなたのバージョンが厳密にタイプされているかどうかは分かりません)。

+1

@ Html.DropDownList私もで私のために働いている(SelectListのようViewBag.PayListは、「有料」)とそのオプションを確認することができMVC4 – Niraj

+0

に私のために働いた(、SelectListのようViewBag.PayListは「有料」) MVC 4、他の1つ( "Pay"、ViewBag.PayList)が私のために働いていないと私はエラーを受け取ります –

+1

これはMVC 4 +で使用するものです。そうでなければ、 "拡張メソッドは動的にディスパッチできません" 。 – awrigley

0
Try this Way: 
<div id="divmsg" style="color: green; font-weight: bold"> 
    @ViewBag.Msg 
</div> 
<div id="divmsg2" style="color: red; font-weight: bold">@ViewBag.Msg2</div> 
<div id="quality" style="width: 80%;" align="center"> 
    <input type="hidden" value="@ViewBag.ProjectId" id="ProjectId_" class="projectId"/> 
    <input type="hidden" value="@ViewBag.ProjectName" id="ProjectName_" class="projectName"/> 
    <input type="hidden" value="@ViewBag.UserId" class="UserId_" id="UserId"/> 
    <input type="hidden" value="@ViewBag.TempId" class="TempId_" id="TempId" /> 
    <div class="toggle-contents"> 
     <table width="100%" id="qualitygoal"> 
      <tr> 
       <td class="even" align="left"> 
        @Html.Label("Project Id") 
       </td> 
       <td class="even" align="left"> 
        @ViewBag.ProjectId 
       </td> 

      </tr> 
      <tr> 

       <td class="projectname" align="left"> 
        @Html.Label("Project Name") 
       </td> 
       <td class="projectname" align="left"> 
        @ViewBag.ProjectName 
       </td> 

      </tr> 
     </table> 

     <table width="100%" id="qualitygoal1" class="tbl"> 
      <tbody> 
       <tr> 
        <th align="center">DestinationColumns</th> 
        <th align="center">SourceColumns</th> 


       </tr> 

       @foreach (var data in Model) 
       { 

        <tr> 
         <td> 
          <span class="spanStatus" id="[email protected]" destinationID = "@data.Destination">@data.Destinationvalue</span> 
          <select class="status" id="[email protected]"> 
           <option value="0">--Select--</option> 
           <option value="4">TICKET ID</option> 
           <option value="5">DESCRIPTION</option> 
           <option value="6">TICKET CATEGERY</option> 
           <option value="7">SEVIORITY/PRIORITY</option> 
           <option value="8">STATUS</option> 
           <option value="9">CREATED DATE</option> 
           <option value="10">CREATED BY</option> 
           <option value="11">ASSIGNED TO</option> 
           <option value="12">ASSIGNED DATE</option> 
           <option value="13">REPSONSE ETA</option> 
           <option value="14">RESOLUTION ETA</option> 
           <option value="15">RESPONSE DATE</option> 
           <option value="16">RESOLUTION DATE</option> 
           <option value="17">ROOT CAUSE/MODULE</option> 
           <option value="18">REOPEN FLAG (Y/N)</option> 
           <option value="19">CLOSE DATE</option> 
           <option value="20">SLA MET (Y/N)</option> 
          </select> 
         </td> 
         <td> 
          <span class="spanSource" id="[email protected]" >@data.Source</span> 
          <input class="Source" id="[email protected]" type="text" value="@data.Source" maxlength="30" /> 
         </td> 

         <td> 
          <table style="width: 50%;"> 
           <tr> 
            <td> 
             <input class="edit" id="[email protected]" type="button" value="Edit" /> 
             <input class="update" id="[email protected]" type="button" value="Update" /> 
            </td> 
            <td class="Gcancle" id="[email protected]"> 
             <input class="gridcancel" id="[email protected]" type="button" value="Cancel" /> 
            </td> 
           </tr> 
          </table> 
         </td> 
         <td> 
          <table style="width: 50%;"> 
           <tr> 
            <td> 
             <input class="delete" id="[email protected]" type="button" value="Delete" /> 
            </td> 
           </tr> 
          </table> 
         </td> 

        </tr> 

       } 
      </tbody> 
     </table> 
    </div> 
    <div align="right"> 
     <input type="button" value="Add New Row" class="Add" /> 

     <input type="button" value="Save" class="saved" /> 
     <input type="button" value="Close" class="cancel" /> 



    </div> 

</div> 
関連する問題