C# 在MVC4中,如何将下面的语句的值设置为零

C# 在MVC4中,如何将下面的语句的值设置为零,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,上面的下拉列表是从控制器绑定的。如果希望默认选项具有定义的值,则需要在将其发送到视图之前将其添加到选项中,例如: @Html.DropDownList("SID", new SelectList(@ViewBag.SiteTypes, "SID", "SiteName"), "-select SiteName-") 默认值为零或您的意思是什么?选择“选择站点名称”时,它应传递零值@ehsansajjadDropDownList的第三个参数用于添加具有空值的标签选项。其设计用于验证(例如,使用属

上面的下拉列表是从控制器绑定的。

如果希望默认选项具有定义的值,则需要在将其发送到视图之前将其添加到选项中,例如:

@Html.DropDownList("SID", new SelectList(@ViewBag.SiteTypes, "SID", "SiteName"), "-select SiteName-")

默认值为零或您的意思是什么?选择“选择站点名称”时,它应传递零值@ehsansajjad
DropDownList
的第三个参数用于添加具有空值的标签选项。其设计用于验证(例如,使用属性上的
[Required]
属性。您可以明确为什么要返回
0
并失去验证的好处,但您需要构造一个
IEnumerable
,第一个项具有
Value=“0”
Text=“-select SiteName-”
(并删除控制器中的第三个参数):var SiteTypes=db.tbl\u Site.OrderBy(p=>p.SID);ViewBag.SiteTypes=SiteTypes;如何传递默认值@mattytommo@MansoorShaik检查我的edit@MansoorShaik没问题,我很高兴能帮上忙
List<SelectListItem> yourOptions = db.tbl_Site
    .OrderBy(p => p.SID)
    .Select(p => new SelectListItem 
    {
        Text = p.Text, //whatever field is text
        Value = p.SID.ToString() //whatever field is the value
    })
    .ToList();
var placeHolder = new SelectListItem
{
    Text = "--select Site--",
    Value = "0"
};

yourOptions.Insert(0, placeHolder);
ViewBag.SiteTypes = yourOptions;
@Html.DropDownList("SID", (SelectList)ViewBag.SiteTypes, "SID", "SiteName"))