C# 使用razor DropDownList for呈现的SelectListItem中禁用项目的最早机会

C# 使用razor DropDownList for呈现的SelectListItem中禁用项目的最早机会,c#,asp.net-mvc,C#,Asp.net Mvc,我需要禁用下拉列表中的几个项目。很明显,我插入了“选择国家”和“----”分隔符。使用razor中的SelectListItem创建列表,并使用DropDownListFor呈现列表 显示了一种方法,但我不确定如何实现该助手。它也已经4岁了,我想知道现在是否有更好/更简单的方法。jQuery是一个选项,但如果可能的话,希望避免这种情况 $("#Country option[value*='-1']").prop('disabled', true); 还有更好的解决办法吗 在控制器中: publ

我需要禁用下拉列表中的几个项目。很明显,我插入了“选择国家”和“----”分隔符。使用razor中的
SelectListItem
创建列表,并使用
DropDownListFor
呈现列表

显示了一种方法,但我不确定如何实现该助手。它也已经4岁了,我想知道现在是否有更好/更简单的方法。jQuery是一个选项,但如果可能的话,希望避免这种情况

$("#Country option[value*='-1']").prop('disabled', true);
还有更好的解决办法吗

在控制器中:

public IEnumerable<SelectListItem> GetCountryList()
{
    var countries = new SelectList(dbLocations.Countries, "Country", "CountryName").ToList();
    countries.Insert(0, (new SelectListItem { Text = "Select Country", Value = "-1" }));
    countries.Insert(1, (new SelectListItem { Text = "United Sates", Value = "USA" }));
    countries.Insert(2, (new SelectListItem { Text = "Canada", Value = "CAN" }));
    countries.Insert(3, (new SelectListItem { Text = "Mexico", Value = "MEX" }));
    countries.Insert(4, (new SelectListItem { Text = "Brazil", Value = "BRA" }));
    countries.Insert(5, (new SelectListItem { Text = "-----------", Value = "-1" }));

    IEnumerable<SelectListItem> countrylist =
        countries.Select(m => new SelectListItem()
        {
            Text = m.Text,
            Value = m.Value
        });

    return countrylist;
}
呈现的HTML:

<select name="Country" id="Country">
    <option value="-1">Select Country</option>
    <option value="USA" selected="selected">United Sates</option>
    <option value="CAN">Canada</option>
    <option value="MEX">Mexico</option>
    <option value="BRA">Brazil</option>
    <option value="-1">------------------------</option>
    <option value="ABW">Aruba</option>
    <option value="AIA">Anguilla</option>

    ...

</select>

选择国家
美国
加拿大
墨西哥
巴西
------------------------
阿鲁巴
安圭拉
...

什么决定了是否应该禁用该字段?Justin,我编辑了我的问题,并添加了一行jQuery,它将禁用所有带有
值=“-1”
的项。我想这不是一个坏选择,但我希望在创建列表时,有一种方法可以在C代码中禁用SelectListItem。
<select name="Country" id="Country">
    <option value="-1">Select Country</option>
    <option value="USA" selected="selected">United Sates</option>
    <option value="CAN">Canada</option>
    <option value="MEX">Mexico</option>
    <option value="BRA">Brazil</option>
    <option value="-1">------------------------</option>
    <option value="ABW">Aruba</option>
    <option value="AIA">Anguilla</option>

    ...

</select>