ASP.net MVC @html.dropdown没有返回选定的值

时间:2017-08-27 20:29:12

标签: jquery asp.net asp.net-mvc html.dropdownlistfor

我一直在试图解决这个问题几个小时。我已经尝试了大多数关于这个问题的代码,并且没有成功获得正确的指南并回答使用@html.dropdown。我有一个下拉列表,它从控制器ViewBag中获取值。

  public ActionResult FindBirthStones()
        {
            ViewBag.birthstones = new SelectList(dbcontext.GemStoneByMonths, "GemStoneByMonthId", "EnglishZodiac");
            return View();
        }

在我的观点中我写过。

  @Html.DropDownListFor(m=>m.EnglishZodiac,(SelectList)ViewBag.birthstones, new { @id = "hello" })

我试过@html.dropdownlist而不是listfor。

 @Html.DropDownList("EnglishZodiac", (SelectList)ViewBag.birthstones, new { @id = "hello" })

我希望使用jquery从下拉列表或列表中获取所选值。我尝试了大多数答案

 var a=  $("hello").text()
 var a=  $("hello option:selected").text()
var a=  $("hello :selected").text()

并且它们都不起作用。有人可以帮我解决。

2 个答案:

答案 0 :(得分:1)

理想情况下,您无需将DropDownList的ID重命名为hello

@Html.DropDownListFor(m => m.EnglishZodiac, (SelectList)ViewBag.birthstones));

相反,您需要使用#在jQuery中通过ID获取元素。 How do I get the text value of a selected option?

var a = $("#EnglishZodiac option:selected").text();

如果脚本在View.cshtml内,您甚至可以使用强类型的html帮助器Html.IdFor

$("#@Html.IdFor(m => m.EnglishZodiac) option:selected").text();

如果您想获得所选值,可以使用.val()

var a = $("#EnglishZodiac").val();

答案 1 :(得分:1)

要通过它的id引用元素,你需要使用hash(#)选择器,如下所示:

// To get the text of the selected option
var a = $("#hello option:selected").text();
// To get the value of the selected option
var b = $("#hello").val();