2010-08-06 17 views
0

我有一个DropDownlist提示用户状态,当用户选择一个状态,即。科罗拉多州,它在数据库中保存了'CO',效果很好。当用户返回页面时,它会在下拉列表中显示'CO',但当页面回传时,下拉列表值为空。如果我再次手动选择一个状态,请回复正确的信息并正确保存。不能使用asp.net MVC中的下拉列表的强类型参数

我创建的下拉列表是这样的:

<%= Html.DropDownList(dropDownName, Model.StateProvinceSelectList, qa.AnswerValue)%> 

我是否正确地使用第三个参数? qa.AnswerValue是数据库中的值(在上例中包含“CO”)。

任何帮助,这将不胜感激。

这里是我的控制器:

public ActionResult Proceed(List<QuestionAnswer> questionAnswers) 
{ 
    questionAnswer[x].AnswerValue  // <--- This is blank on postback, but if user selects, it is set properly 
    ... 
} 

,这里是一旦值已设置,它看起来像MVC引擎设置显示的HTML,但不是值(在这种情况下,CO):

<select id="questionAnswers_5__AnswerValue" name="questionAnswers[5].AnswerValue"> 
    <option value="">CO</option> 
    <option value="AL">ALABAMA</option> 
    <option value="AK">ALASKA</option> 
    <option value="AS">AMERICAN SAMOA</option> 
    <option value="AZ">ARIZONA </option> 
    ... 
    </select> 

回答

0

你确定Model.StateProvinceSelectList正在你的Post-action中设置吗?

+0

这是如果我手动选择它并回发,但如果它从数据库填充,显示正确的状态,然后回发,它的行为像没有被选中。 – 2010-08-07 16:57:42

+0

你能否提供一些来自controller-actions的代码? – 2010-08-08 09:02:50

+0

Yngve,我在上面添加了一些代码。 MVC引擎似乎设置了下拉显示,但它并未设置该值,只有在用户手动选择该值时才会显示该值。 – 2010-08-10 21:58:58