Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何从MVC3中的下拉列表中获取选定值_Asp.net Mvc_Asp.net Mvc 3_Razor - Fatal编程技术网

Asp.net mvc 如何从MVC3中的下拉列表中获取选定值

Asp.net mvc 如何从MVC3中的下拉列表中获取选定值,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,这听起来可能很简单,但我遇到了一个非常奇怪的问题 我已经在应用程序中创建了下拉列表,无法在编辑时获取所选值 以下是我的看法: <div class="editor-field"> @Html.DropDownListFor(model => model.Hobbyhome.HobbyHomeAddressList.First().ProvincialState.ProvincialStateID, new SelectList(ViewBag.State, "Pro

这听起来可能很简单,但我遇到了一个非常奇怪的问题

我已经在应用程序中创建了下拉列表,无法在编辑时获取所选值

以下是我的看法:

<div class="editor-field">
      @Html.DropDownListFor(model => model.Hobbyhome.HobbyHomeAddressList.First().ProvincialState.ProvincialStateID, new SelectList(ViewBag.State, "ProvincialStateID", "ProvincialStateName"), "-----Select State-----", new { @id = "State" })<font color="red">*</font> 
      </div>
我已经在controller中编写了一个函数来获取值,我也能够获取值,但当它进入视图时,它不会显示值 我创建了另一个下拉列表,如下所示:

奇怪的是,我可以看到第二个下拉列表的值,但第一个下拉列表的值却看不到 我想可能是因为我使用的是一个列表。第一个在第一个下拉列表中,所以它给出了这个问题。在编辑视图页面上,它只显示我——选择状态——作为第一个下拉列表的值。
请帮助我在编辑视图中获取选定的值对象:

@Html.DropDownListFor(model => model.Hobbydetail.Hobbymaster.HobbyId, 
    new SelectList(ViewBag.Hobby, "HobbyId", "HobbyName", Model.Hobbydetail.Hobbymaster.HobbyId),
    "----Select Hobby----", new { @id = "Hobby" })
要在下拉列表中包含所有元素,请确保在显示“编辑视图”之前已初始化ViewBag.Hobby并将其填入控制器中

第一个方法返回序列的第一个元素。如果源序列为空,它将抛出一个异常

你为什么要先用呢?我认为你做得不对。DropDownListFor的第一个参数应该是一个保存所选值的变量,在您使用的这个特殊重载中

public static MvcHtmlString DropDownList(
    this HtmlHelper htmlHelper,
    string name,
    IEnumerable<SelectListItem> selectList,
    IDictionary<string, Object> htmlAttributes
)
在我们看来,

 @Html.DropDownListFor(model => SelectedHobbyId , new SelectList(Hobbys , "HobbyId", "HobbyName"), "----Select Hobby----", new { @id = "Hobby" })
现在,您将在SelectedHobbyId属性的httppost方法中获得所选值

[HttpPost]
public ActionResult Add(AddHobbyViewModel model)
{
  // check model.SelectedHobbyId here
}

@用户1274646:很高兴它帮助了你。
public ActionResult Add()
{
  AddHobbyViewModel model=new AddHobbyViewModel ();
  model.Hobbys=db.Hobbies();  // get all available hobbies.

  return View(model);
}
 @Html.DropDownListFor(model => SelectedHobbyId , new SelectList(Hobbys , "HobbyId", "HobbyName"), "----Select Hobby----", new { @id = "Hobby" })
[HttpPost]
public ActionResult Add(AddHobbyViewModel model)
{
  // check model.SelectedHobbyId here
}