6

我有 asp web 表单,我正在使用 razor 技术发布该表单,问题是,我想知道如何为 razor 下拉列表指定 ID 和 NAME 属性,因为在下一步中,我正在获取表单值通过使用 ID 和 NAME 属性..

查看代码是:

@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();
}

模型:

public class businessDropDownModel
{
    public int ID { set; get; }
    public string BusinessTypeName { set; get; } 
}
4

3 回答 3

10

如果要设置名称和 id 或其他属性,可以使用 html 属性选项。

注意:该方法有一个怪癖:您可以使用属性字典来覆盖“id”,但不能覆盖“name”。

例子:

@Html.DropDownList("Selected", Model.SelectList, "First Option", new { name = "Name", id = "id"})

将呈现:

<select id="id" name="Selected">...</select>

所以结果是:如果您希望 name 和 id 不同,请将 name参数设置为您想要的 name,并使用字典覆盖 id。

于 2013-10-12T15:27:56.340 回答
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>
于 2013-10-12T14:40:14.877 回答
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>
于 2016-01-28T21:12:55.703 回答