在表单子ASP.NET MVC之后更改下拉列表的值

时间:2011-06-05 13:00:49

标签: asp.net asp.net-mvc asp.net-mvc-3

我有一个非常奇怪的问题。我想在表单子目录后更改下拉列表的选定值。我知道HtmlHelper正在检索ModelState值,该值填充了发布的数据。但我有一个从我的POST动作重定向到GET动作!但是我的ddl填充了帖子中提交的值。我还将此代码添加到我的帖子操作:ModelState.Clear(),但这对我来说也没有帮助。

为了调试,我在表单中添加了另一个ddl;

   @Html.DropDownList("asd" + Guid.NewGuid(), Model.Voting.Result.ToSelectList())

始终显示服务器代码提供的值。但是目标ddl

@Html.DropDownListFor(x => x.Voting.Result, Model.Voting.Result.ToSelectList())

始终具有用户发布的值。 如何填充目标ddl?

2 个答案:

答案 0 :(得分:1)

您必须将初始值传递给它,如

@Html.DropDownListFor(x => x.Voting.Result, 
new SelectList(Model.Voting.Result, "Id", "Name", /*initial value*/))

使用this

SelectList构造函数

编辑 最初我把论据放错了方法

答案 1 :(得分:1)

看一下这个链接:

MVC Dropdown list value not being set