【发布时间】:2010-11-19 14:47:43
【问题描述】:
我想将下拉列表填充到 ASCX。 为此,在控制器中,我使用 LINQ 查询并将结果填充到 viewModel 中。 从视图可以生成下拉列表,但不能从 ASCX 生成! 您知道为什么这不起作用吗?
提前感谢 :-)
控制器中的代码
var query = from foo in session.Linq<PROJECT.Models.bar>() select foo;
PROJECT.ViewModels.myviewmodel viewModel = new PROJECT.ViewModels.myviewmodel();
viewModel.data = new SelectList(query, "Id", "title");
return View(viewModel);
代码可见
<h2>Create</h2>
<%= Html.EditorFor(a => a.evaluation, new { EvaluationTypes = Model.evaluationTypes })%>
<!-- Generate from here is ok -->
<%: Html.DropDownList("foo",Model.evaluationTypes) %>
ASCX 中的代码
<%= ViewData["EvaluationTypes"] %>
<%: Html.DropDownList("foo", ViewData["EvaluationTypes"])%>
【问题讨论】:
-
在视图中您使用 Model.evaluationTypes,但在 ASCX 中您使用 ViewData["EvaluationTypes"]。是否填写了 ViewData["EvaluationTypes"]?
-
@Pavel,是的,他将其作为
EditorFor助手的第二个参数传递。
标签: c# asp.net-mvc-2 drop-down-menu viewmodel viewdata