1

ドロップダウン内にデータを入力中に問題が発生しました... 私は部分ビューを使用しているので推測しますそれは問題を作り出している。 は、ここに私のコードです:'course'というキーを持つ 'IEnumerable <SelectListItem>'タイプのViewDataアイテムがありません

public ActionResult Register() 
{ 
    var course = from Course c in Enum.GetValues(typeof(Course)) 
        select new { ID = c, Name = c.ToString() }; 
    ViewData["course"] = new SelectList(course, "ID", "Name"); 
    return view(); 
} 

public enum Course 
{ 
    [Display(Name = "Basic Level", ShortName = "Basic")] 
    Basic = 1, 

    [Display(Name = "Intermidiate Level")] 
    Intermidiate = 2, 

    [Display(Name = "Advance Level")] 
    Advance = 3 
} 

これは私のメインビューです:

<table style="margin-top: 10px"> 
<tr> 
    <td valign="top"> 
     @{Html.RenderPartial("LogOnPartial");} 
    </td> 
    <td width="20px"> 
    </td> 
    <td align="left"> 
     @{Html.RenderPartial("CreatePartial");} 
    </td> 
</tr> 

私は私の部分図(CreatePartial)でこれを書いた:

<td> 
     @Html.DropDownList("course"); 
</td> 

助けてください私

答えて

1

これはうまくいくはずです。私は問題を再現することができません。

モデル:

public enum Course 
{ 
    [Display(Name = "Basic Level", ShortName = "Basic")] 
    Basic = 1, 

    [Display(Name = "Intermidiate Level")] 
    Intermidiate = 2, 

    [Display(Name = "Advance Level")] 
    Advance = 3 
} 

コントローラー:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     var course = from Course c in Enum.GetValues(typeof(Course)) 
        select new { ID = c, Name = c.ToString() }; 
     ViewData["course"] = new SelectList(course, "ID", "Name"); 
     return View(); 
    } 
} 

Index.cshtmlビュー:

@{Html.RenderPartial("CreatePartial");} 

CreatePartial.cshtml部分:

@Html.DropDownList("course") 

最初に読み込まれたときではなく、フォームを送信した後に、これが機能していないと思われます。 [HttpPost]アクションでViewData["course"]の再埋め込みを忘れていて、同じビューを再表示しようとしていた可能性があります。同じビューを再表示する場合は、ページを最初にレンダリングするときに使用したGETアクションと同じ方法で、ViewData["course"]を入力してください。

もう1つ注意しなければならないのは、他のいくつかの相反する値がありません。

+0

こんにちは、私はどんな投稿方法も持っていないと言っています。私はページを読み込む際に問題があります... – user1274646

+0

@ user1274646、それは奇妙です。私の例を試しましたか?私は新しいASP.NET MVC 3アプリケーションでそれをテストし、うまくいきました。 –

+0

ちょっと私は、新しいprojの仕事をしようとしましたが、私のprojとそのnt workinに実装されている同じソリューション...私はいくつかの他の事やjus rechk私のコードを提案することができます同じエラー..もし私hvがマイナーミスをしたら – user1274646

関連する問題