2015-04-12 44 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的數據標識...