1

我在收集下拉列表中的数据时出现问题... 我想因为我使用的是部分视图,这是创造问题。 这里是我的代码:没有ViewData项的类型'IEnumerable <SelectListItem>'有关键'课程'

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 
} 

这是我的主要观点:

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

请帮助:

<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)这样写我

回答

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"],但仍试图重新显示相同的视图。如果您想重新显示相同的视图,请确保您填写ViewData["course"]的方法与您在用于初始呈现页面的GET操作中所做的相同。

需要注意的另一件事是,你没有其他ViewData["course"]价值冲突。

+0

嗨没有这样的事情发生亚作为你说我没有任何post方法..它给问题我加载页面... – user1274646 2012-03-29 07:35:18

+0

@ user1274646,这很奇怪。你尝试过我的例子吗?我已经在新的ASP.NET MVC 3应用程序中测试过它,它工作正常。 – 2012-03-29 07:46:01

+0

嘿我试过你的解决方案在一个新的项目工作,但同样的解决方案我在我的项目实施和它的nt workin ...即时通讯gettin同样的错误..请问你可以建议我一些其他的事情或绝对rechk我的代码如果我制造了很小的错误 – user1274646 2012-03-29 11:09:56

相关问题