如何从下拉列表中选择默认值

时间:2017-03-05 23:26:19

标签: c# asp.net-mvc

现在需要用户选择其中一个下拉值。 如果当前值为空,如何将下拉选择值设置为" Rate1" (这是Modal加载时的方式)

最后,设置@class =" form-control"的状态。 至: @class ="表格控制编辑"当模态加载所选的值?

我将此作为查询填充,在我的下拉列表中包含4个费率:

case "BillingRates":
            {
                strArrays = new string[] { "Rate1", "Rate2", "Rate3", "Rate4" };
                for (i = 0; i < (int)strArrays.Length; i++)
                {
                    string str4 = strArrays[i];
                    lookups.Add(new Lookup()
                    {
                        Text = str4,
                        Value = str4,
                        TenantId = currentTenantId,
                        Selected = false,
                        Disabled = false,
                        Group = null,
                        AssociatedClass = string.Empty
                    });
                }
                break;
            }

我也使用这个foreach来查找下拉列表的BillingRates:

foreach (Lookup lookupItem in (new LookupFill("BillingRates", num)).LookupItems)
        {
            SelectListItem selectListItem3 = new SelectListItem()
            {
                Text = lookupItem.Text,
                Value = lookupItem.Value,
                Disabled = lookupItem.Disabled,
                Selected = lookupItem.Selected
            };
            selectListItems5.Add(selectListItem3);
        }
        SelectListItem selectListItem4 = new SelectListItem()
        {
            Text = "",
            Value = "",
            Disabled = false
        };

然后我在我的cshtml文件中有变量:

var selectedBillingRate = string.Empty;
var BillingRates = ViewData["BillingRates"] as IEnumerable<SelectListItem>;
foreach (var item in BillingRates)
{
    if (item.Value == Model.Invoice.BillingRate) { selectedBillingRate = item.Value; break; }
}
var BillingRateSelect = new SelectList(BillingRates, "Value", "Text");


var selectedBillingRate = '@Html.Raw(selectedBillingRate)';
        $('#BillingRate').val(selectedBillingRate);

最后,我把它作为我的DropDownList:

@Html.DropDownList("BillingRate", BillingRateSelect, new { id = "BillingRate", required = "required", @class = "form-control" + (!string.IsNullOrEmpty(Model.Invoice.BillingRate) || !string.IsNullOrEmpty(selectedBillingRate) ? " edited" : "") })

1 个答案:

答案 0 :(得分:0)

我最终只是从上面替换了这个: var selectedBillingRate = string.Empty; 有了这个: var selectedBillingRate = "Rate1"; 它似乎按要求工作。

我意识到这可能不是最好的实现方式,而且@ StephenMueke的方式是最好的方法,但是,我找不到合适的GET方法来设置{{1}的值如预期的那样。我的坏,还在学习。再次感谢@StephenMuecke发表评论并引导我进一步研究它。