Html.DropDownList正确重载以获取RAZOR中的Selected Item

时间:2014-09-30 16:16:36

标签: asp.net-mvc razor html-select selecteditem

当我不在webgrid中工作时,我在下载列表中找到正确的选定项目时遇到问题。

所以我拥有的是:

    @{
    :
    :
        var sql = "select * from AV_SDQ where StudentID = @0 and Assesment_key = @1";
        var scores = db.QuerySingle(sql, StudentID, Assesment_Key);

        var q1 = db.Query("select score_item_enum_key as Col1, abc_value as Col1v from assesment_enum where assesment_key = @0 and seq = 1 order by enum_seq", Assesment_Key)
                            .Select(q1e => new SelectListItem {
                                Value = q1e.Col1.ToString(), 
                                Text = q1e.Col1v.ToString()
                             }); 

        if(IsPost && !Request["buttonSubmit"].IsEmpty()){

           my methods to insert the data -  work beautifully

           scores = db.QuerySingle(sql, StudentID, Assesment_Key);
        }

    }

    <form method="post">
    <table>

    <tr><td>
    Considerate of other people's feelings
    </td><td>
    @Html.DropDownList("Col1", "-- Select --", q1, scores.Col1,  new ***[ WHAT DO I PUT HERE?????????]*** )
    </td></tr>

    </table>


    @{  if(scores != null) {
        if(!IsPost){
            <p><input type="submit" name="buttonSubmit" value="Submit" /></p>
            }
        if(IsPost){
            <p><input type="submit" name="buttonSubmit" value="Submitted!" /></p>
            }

    }}

    </form>

我知道Html.DropDownList的重载需要第五个参数(新的HTML.Attributes),但我完全失去了放在这里的东西.......如果我在Gridview中我只会有新。但似乎我需要新的 _ 而且我不知道要为 ____ 添加什么。

我的下拉列表正常工作,我在发布时正确设置了数据库中的值。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

跟进以下回复:

我想将selectedValue设置为第4个参数。这需要我使用5个参数。我有对象或IDDictionary htmlAttributes

的选项

这是有效的:

    </td><td>
    @Html.DropDownList("Col1", "-- Select --", q1, scores.Col1, new { @class = "smallertext"} )
    </td></tr>

答案 1 :(得分:0)

如果您不需要设置下拉列表的任何HTML属性,则只需将new { }放在那里

@Html.DropDownList("Col1", "-- Select --", q1, scores.Col1, new { })

但是,如果您需要设置下拉列表的一个或多个HTML属性,这里有一个设置css类的示例

@Html.DropDownList("Col1", "-- Select --", q1, scores.Col1, new { @class = "smallertext" })

或者是否有多个HTML属性

@Html.DropDownList("Col1", "-- Select --", q1, scores.Col1, new { @class = "smallertext", @disabled = "disabled" })