2015-04-12 45 views
0

请真的需要一些帮助。我对这个疯了。HTML.DropDownList不显示选定的值

我想在页面内建立7 Tab的2 DropDown的在选择价值。该列表他总是相同的,但在每个标签中我有不同的选定值。

一切顺利的第一个,但我不能让第二个工作。

她是我的剃刀代码:

@Html.DropDownList("Q21_objectivos", new SelectList 
    (Model.Q21_ObjectivosList, "Value", "Text", Model.Q21_Objs[i - 1]), 
    "Seleccione um objectivo", 
    new 
    { 
    id = "objectivo" + i.ToString(), 
    @class = "form-control", 
    @onchange = "detectarObjectivoDuplicado(" + i + ", $(this).val());" 
    }) 

这一个不工作:

@Html.DropDownList("Q21_AvaliacaoLista", 
new SelectList(Model.Q21_AvaliacaoLista, "Value", "Text", Model.Q21_Pontuacao[i - 1]), 
new 
{ 
id = "avalObjectivo" + i.ToString(), 
@class = "form-control", 
@onchange = "CalculaPontRes();" 
}) 

这里是生成的HTML:

<select class="form-control" id="objectivo1" name="Q21_objectivos" onchange="detectarObjectivoDuplicado(1, $(this).val());"><option value="">Seleccione um objectivo</option> 
<option selected="selected" value="1">Preencher as tarefas em DotProject até ao dia 1 do mês seguinte</option> 
<option value="2">Desenvolver aplicação SIADAP3</option> 
<option value="3">Resolver 70% dos tickets atribuidos</option> 
<option value="4">Desenvolver 2 aplicações locais em VB.net</option> 
<option value="5">Desenvolver 2 aplicações locais em COBOL</option> 
</select> 

所导致的不选择的HTML下拉列表:

<select class="form-control" id="avalObjectivo1" name="Q21_AvaliacaoLista" onchange="CalculaPontRes();"><option value="5">Superado (Pontuação 5)</option> 
<option value="3">Atingido (Pontuação 3)</option> 
<option value="1">Não Atingido (Pontuação 1)</option> 
<option value="0">Avalie o Objectivo</option> 
</select> 

我还能说些什么...模型加载了列表,因为它可能在HTML中看到。

+0

第二个选项的设置选择值。你有没有设置这个值..在加载或第二个选项卡点击通过JavaScript – niku

+0

什么不工作与第二个?预期的结果是什么? –

+0

第二个不是设置选定的值。它只加载DropDownList,但Model.Q21_Pontuacao [i - 1](其中选定的值)它不起作用。所选的一个始终是列表中的第一个。 –

回答

0

我只是做它通过改变“Q21_AvaliacaoLista”“Q21_Avaliacao”在不工作DropDownList的工作。

不知怎的,这个名字可能是一个冲突。我不明白为什么,但这种方式工作。

+0

是的,这是为什么人们在使用DropDownList而不是DropDownListFor方面存在问题的众多(但常见)原因之一。 HTML帮助程序与ViewData字典紧密结合,当您的项目列表与选定的项目名称具有相同的名称时,它会变得混乱。始终为您的清单和选定的项目使用不同的名称。 –

+0

我试过DropDownListFor但我有同样的问题,因为这个:@DropDownListFor(m => m.Q21_AvaliacaoLista <---导致相同的名称问题,也是这种方式,我只会得到所选的值,如果它被传递Q21_AvaliacaoLista ..制作Model.Q21_Pontuacao [i - 1]没有用,我最终会在我制作的7张标签中出现同样的东西(希望我不会混淆)。 –

1

如果将属性名称“Q21_AvaliacaoLista”更改为其他值,则selectedvalue将起作用。

属性名称(Q21_AvaliacaoLista)和项目列表(Model.Q21_AvaliacaoLista)不能具有相同的名称。

也许这是因为MVC的数据标识...