从控制器发送数据到视图 - 仍未设置Viewdata

时间:2012-04-09 15:57:10

标签: asp.net-mvc

我的视图中有一个事件处理程序,它会在单击id时做出反应。点击id后,我在控制器中调用了method1。

在同一视图中,我有一个dropdownlost,我用我在method1中设置的ViewData填充。

但是,因为在开始时,调用了Index,并且ViewData仍然是空的,我得到的错误是没有这样的ViewData来填充我的下拉列表。

如果Viewdata不是eppty,如何设置下拉列表?

1 个答案:

答案 0 :(得分:0)

您可以在输出下拉列表之前测试ViewData中是否包含值:

<% if (ViewData["values"] != null) { %>
    <%= Html.DropDownList("selectedValue", (IEnumerable<SelectListItem>)ViewData["values"]) %>
<% } %>

如果使用视图模型,甚至会更好:

<% if (Model.Values != null) { %>
    <%= Html.DropDownListFor(x => x.SelectedValue, Model.Values) %>
<% } %>