JavaScript使用HTMLHelper和;“全部”;

JavaScript使用HTMLHelper和;“全部”;,javascript,c#-4.0,asp.net-mvc-4,Javascript,C# 4.0,Asp.net Mvc 4,我正在使用JavaScript获取MVC4中下拉列表的选定值,但我认为有一个问题是由HTMLHelper引起的 控制器-填充液滴列表 private string PopulateStandard(object selectedValue = null) { var query = db.Database .SqlQuery<StandardModel>( "SELECT * FROM [DB

我正在使用JavaScript获取MVC4中下拉列表的选定值,但我认为有一个问题是由HTMLHelper引起的

控制器-填充液滴列表

private string PopulateStandard(object selectedValue = null)
{
    var query = db.Database
                  .SqlQuery<StandardModel>(
                        "SELECT * FROM [DBO].[GetStandards] ('" + 
                        User.Identity.Name + "', '" + DateTime.UtcNow + "')")
                  .ToList();

    ViewBag.Standard = new SelectList(query, "Standard", "Standard", selectedValue);

    try { return query[0].Standard; }
    catch { return ""; }
}
JAVASCRIPT

说来话长,但我还有其他代码需要我使用JavaScript获取下拉列表的值,所以我是这样做的:

var e = document.getElementById("Standard");
var sStandard = e.options[e.selectedIndex].value;
问题

如果没有选择任何值,那么我应该得到第一行,这将是文本的“全部”,或值的“全部”。相反,我将得到第二行,这是第一行,其中包含从数据库填充的数据

HTML助手是否导致我无法获取第一行?还是我的JavaScript关闭了

编辑-在下拉列表中显示ViewSource

这些是渲染列表的前几行

<select id="Standard" name="Standard"><option value="">All</option>
<option value="2S">2S</option>
<option value="Aero">Aero</option>
全部
2S
航空的
@Html.DropDownList(“标准”、“全部”)


这里的“全部”是选项标签。因此,您不会将其作为值获取。

查看为前两个选项生成的HTML可能会有所帮助——当然,如果您不想给出太多信息,请进行编辑。我看到了一些可能出现这个问题的场景,我没有让HTML助手添加“All”,而是从数据源执行。有点像黑客。我的问题已经解决了,这个问题没有得到回答,所以如果有人想复制并解决它,我会留下它。
<select id="Standard" name="Standard"><option value="">All</option>
<option value="2S">2S</option>
<option value="Aero">Aero</option>