我正在使用ASP.NET MVC,并尝试使用HtmlHelper.DropDownListFor方法呈现选择列表,如下所示:
<%= Html.DropDownListFor(x => x.AllTopics, SelectListHelper.GetSelectListItems(Model.AllTopics), "Select a Topic", new { id = "allTopics", @class = "topic-dropdown" })%>
Run Code Online (Sandbox Code Playgroud)
其中SelectListHelper会返回一个IList<SelectListItem>无论从任何收集我们正在传递.这正常工作对简单的事情,但我希望能够到一个title属性添加到每个选项标签(未在选择列表本身).但DropDownListFor只接受一个IEnumerable<SelectListItem>,而SelectListItem没有任何我可以放在title属性中的地方.
有没有办法做到这一点,没有前面的DropDownListFor方法和手写出选择列表和每个元素?
是否有任何优雅的方式来创建这样的东西
<select>
<option value="" disabled selected>Select your option</option>
<option value="1">Option1</option>
</select>
Run Code Online (Sandbox Code Playgroud)
在ASP.NET MVC 4中使用@ Html.DropDownListFor帮助器?
我正在尝试创建一个选择列表。我使用视图模型中的集合创建了它,该集合允许我使用以下代码设置每个选项的值和文本:
@Html.DropDownListFor(model => model.Networks, new SelectList(Model.Networks, "NetworkID", "Name"), new { @class="form-control" })
Run Code Online (Sandbox Code Playgroud)
Model.Networks 包含另一个名为 CountryId 的属性。我想为每个选项标签添加一个属性,如下所示:
<option value="[NetworkId]" data-countryId="[CountryId]">Canada</option>
Run Code Online (Sandbox Code Playgroud)
我应该怎么做?
如果我有这样的事情:
@{
var cats = GetCategories();
var selectList = from c in cats
select new SelectListItem
{
Selected = (c.Id == Model.SessionCategory.Id),
Text = c.Name,
Value = c.Id.ToString(),
};
}
@Html.DropDownList("categories", selectList)
Run Code Online (Sandbox Code Playgroud)
标记将是这样的:
<select id="categories" name="categories">
<option value="1">Category1</option>
<option value="2">Category2</option>
<option selected="selected" value="3">Category3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
现在,问题是:
是否可以为每个<option>标签添加额外的属性?我的意思是来自 Razor 模板。没有 jQuery 解决方法?
我正在使用Bootstrap-select http://silviomoreto.github.io/bootstrap-select/来获取其中一些增强选项.
当我开发select的功能时,我正在使用直接的html选择响应jQuery事件,以在选择选项时进行Ajax调用.我在每个选项上使用数据属性来定义传递给Ajax调用的参数.
不幸的是,在应用Bootstrap-select组件时,它会将底层选择转换为带有隐藏ul的按钮.我的数据属性无法在转换中存活.是否有任何方法可以将自定义数据应用于可以在转换中存活的选项?
这是我的ASP.NET MVC代码生成选择:
<select class="selectpicker show-tick btn-kpi btn-kpi-select" data-style="btn-kpi-selector">
@foreach (SelectChartColumnVM col in chartCols)
{
<option class="select-chart-column"
data-action="@col.Action"
data-new-id="@col.ID"
data-chart-index="@Model.ChartIndex" >
@col.DisplayDescription()
</option>
}
</select>
Run Code Online (Sandbox Code Playgroud)
我的jQuery代码响应点击是这样的:
$('#charts').on('click', '.select-chart-column',
function () {
$this = $(this);
$.shared.mvcAjax("/SelectChartColumn",
{
action: $this.data("action"),
newId: $this.data("new-id"),
chartIndex: $this.data("chart-index")
},
updateChartData);
}
);
Run Code Online (Sandbox Code Playgroud)
生成的html的示例如下:
<div class="btn-group bootstrap-select show-tick btn-kpi btn-kpi-select open">
<button type="button" class="btn dropdown-toggle btn-kpi-selector" data-toggle="dropdown">
<div class="filter-option pull-left">
Rate </div> <div class="caret"></div>
</button>
<ul class="dropdown-menu" role="menu" style="max-height: 699px; overflow-y: auto; min-height: 99px;"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试为文本框控件编写一个自定义控件,其中想要根据某些输入属性生成控件,我无法在自定义控件中访问GetModelStateValue.
我该怎么做呢 ?
asp.net ×2
asp.net-mvc ×2
razor ×2
c# ×1
css ×1
html ×1
html-select ×1
html5 ×1
jquery ×1
placeholder ×1