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
}