Asp.net mvc 没有类型为';IEnumerable<;选择列表项>';那有钥匙';课程';
我在下拉列表中填充数据时遇到问题。。。 我想,因为我使用的是局部视图,这就是它产生问题的原因。 这是我的密码:Asp.net mvc 没有类型为';IEnumerable<;选择列表项>';那有钥匙';课程';,asp.net-mvc,asp.net-mvc-3,razor,drop-down-menu,partial-views,Asp.net Mvc,Asp.net Mvc 3,Razor,Drop Down Menu,Partial Views,我在下拉列表中填充数据时遇到问题。。。 我想,因为我使用的是局部视图,这就是它产生问题的原因。 这是我的密码: public ActionResult Register() { var course = from Course c in Enum.GetValues(typeof(Course)) select new { ID = c, Name = c.ToString() }; ViewData["course"] = new S
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>
@{Html.RenderPartial(“LogOnPartial”);}
@{Html.RenderPartial(“CreatePartial”);}
我已经在我的部分视图(CreatePartial)中写了这篇文章:
@Html.DropDownList(“课程”);
请帮帮我这应该行得通。我无法重现这个问题 型号:
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
partial:
@Html.DropDownList("course")
我怀疑这在您提交表单后不起作用,而不是在最初加载表单时。这可能是因为您可能忘记在[HttpPost]
操作中重新填充视图数据[“课程”]
,但又试图重新显示相同的视图。如果要重新显示同一视图,请确保以与最初呈现页面时使用的GET操作相同的方式填充ViewData[“课程”]
另一件需要注意的事情是,您没有其他一些冲突的
ViewData[“course”]
值。这应该是可行的。我无法重现这个问题
型号:
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
partial:
@Html.DropDownList("course")
我怀疑这在您提交表单后不起作用,而不是在最初加载表单时。这可能是因为您可能忘记在[HttpPost]
操作中重新填充视图数据[“课程”]
,但又试图重新显示相同的视图。如果要重新显示同一视图,请确保以与最初呈现页面时使用的GET操作相同的方式填充ViewData[“课程”]
另一件需要注意的事情是,你没有其他冲突的
ViewData[“course”]
值。hi没有发生像你说的那样的事情,我没有任何post方法。这给了我加载页面的问题…@user1274646,这很奇怪。你试过我的例子吗?我已经在一个新的ASP.NET MVC 3应用程序中测试了它,它运行得很好。嘿,我在一个新项目中尝试了你的解决方案,它的工作原理,但我在我的项目和它的nt工作原理中实现了相同的解决方案…我遇到了相同的错误。请你给我一些建议,或者如果我犯了任何小错误,请重新编写我的代码没有任何post方法..我加载页面时出现问题…@user1274646,这很奇怪。你试过我的例子吗?我已经在一个新的ASP.NET MVC 3应用程序中测试了它,它运行得很好。嘿,我在一个新项目中尝试了你的解决方案,它的工作原理,但在我的项目和它的nt工作原理中实现了相同的解决方案…我遇到了相同的错误。如果我犯了任何小错误,请你给我一些其他建议或重新编写代码好吗