我有asp网页表单,我正在使用razor技术发布该表单, 问题是,我想知道如何为剃刀下拉列表指定ID和NAME属性,因为在下一步中,我通过使用ID和NAME属性获取表单值。
VIEW代码是:
@Html.DropDownList("ID", (SelectList) ViewBag.list, " -- Select Business Type -- ")
控制器:
public ActionResult coverage()
{
var query = db.Database.SqlQuery<businessDropDownModel>("businesDropDownSP");
ViewBag.list = new SelectList(query.AsEnumerable(), "ID", "BusinessTypeName", "----select----");
return View();
}
MODEL:
public class businessDropDownModel
{
public int ID { set; get; }
public string BusinessTypeName { set; get; }
}
答案 0 :(得分:10)
如果要设置名称和ID或其他属性,可以使用html属性选项。
注意:该方法有一个怪癖:您可以使用属性字典覆盖“id”,但不“name”。
示例:
@Html.DropDownList("Selected", Model.SelectList, "First Option", new { name = "Name", id = "id"})
将呈现:
<select id="id" name="Selected">...</select>
所以结果是:如果你想要名称和id不同,将名称参数设置为你想要的名称,并使用字典来覆盖id。
答案 1 :(得分:8)
@Html.DropDownList("MyIdAndName", (SelectList) ViewBag.list, " -- Select Business Type -- ")
中的第一个参数既是select
标记的ID又是名称。
所以,
@Html.DropDownList("MyIdAndName", (SelectList) ViewBag.list, " -- Select Business Type -- ")
会渲染
<select id="MyIdAndName" name="MyIdAndName">...</select>
答案 2 :(得分:2)
如果需要将Id设置为与Name不同的值,可以使用htmlAttributes参数设置控件的Id。您仍然使用DropDownList帮助器中的第一个参数来设置控件的名称。
@Html.DropDownList( "Job.DefaultProfitCenter", (SelectList)ViewBag.DefaultProfitCenter, " -- Select -- ", new { id = "Job_DefaultProfitCenter" } )
这将为下拉列表生成以下html:
<select id="Job_DefaultProfitCenter" name="Job.DefaultProfitCenter">
<option value=""> -- Select -- </option>
<option value="0">Option 1</option>
</select>