指定名称和ID以下拉剃刀技术asp dot net mvc4

时间:2013-10-12 09:10:37

标签: asp.net-mvc asp.net-mvc-4 razor html-select

我有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; } 
}

3 个答案:

答案 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>