求助:将ASP:DropDownList转换为ASP.NET MVC(Bootstrap HTML)语法
把ASPX服务器控件转成标准HTML的解决方案
没问题!咱们把你提供的ASPX服务器控件转换成浏览器能识别的标准HTML,完美适配ASP.NET MVC项目:
1. <asp:Literal> 转换
原来的<asp:Literal ID="11" Text="Full Name"></asp:Literal>是服务器端输出纯文本的控件,如果你是用它来做下拉框的标签,最语义化的转换是用HTML的<label>标签(关联对应的下拉框):
<label for="id1">Full Name</label>
如果只是单纯需要输出“Full Name”文本,直接写:
Full Name
2. <asp:DropDownList> 转换
<asp:DropDownList ID="id1" CssClass="form-control" AppendDataBoundItems="true"></asp:DropDownList>对应HTML的<select>标签,AppendDataBoundItems="true"的意思是保留手动添加的选项再绑定数据,所以转换后基础结构是:
<select id="id1" class="form-control"> <!-- 如果原来有默认空选项,这里可以手动添加 --> <option value="">请选择</option> </select>
适配ASP.NET MVC的数据绑定
在MVC里,你可以用Razor语法来动态绑定下拉框选项,比如:
假设控制器已经把数据源(比如ViewBag.Options)传到视图,你可以这样生成选项:
<select id="id1" class="form-control"> <option value="">请选择</option> @foreach (var item in ViewBag.Options) { <option value="@item.Value">@item.Text</option> } </select>
或者用MVC的HtmlHelper更简洁:
@Html.DropDownList("id1", (IEnumerable<SelectListItem>)ViewBag.Options, "请选择", new { @class = "form-control" })
这样转换后的代码完全是浏览器能识别的标准HTML,同时也符合ASP.NET MVC的开发习惯~
内容的提问来源于stack exchange,提问作者zufuzoje
相关产品推荐
相关产品推荐

