由於下拉列表由<select>
元素表示,所以在提交表單時將傳遞所選值。你只需要調整您的視圖模型,以便它有一個名爲SelectedId
例如要在其中綁定下拉屬性:
@using(Html.BeginForm())
{
<fieldset>
<dl>
<dt>
@Html.LabelFor(x => x.SelectedId)
</dt>
<dd>
@Html.DropDownListFor(x => x.SelectedId, Model.CategoryList)
</dd>
</dl>
</fieldset>
<input type="submit" value="Search" />
}
這假定以下視圖模型:
public class MyViewModel
{
[DisplayName("Select a category")]
public int SelectedId { get; set; }
public IEnumerable<SelectListItem> CategoryList { get; set; }
}
,這將是由你的控制器處理:
public ActionResult Index()
{
var model = new MyViewModel();
// TODO: this list probably comes from a repository or something
model.CategoryList = new[]
{
new SelectListItem { Value = "1", Text = "category 1" },
new SelectListItem { Value = "2", Text = "category 2" },
new SelectListItem { Value = "3", Text = "category 3" },
};
return View(model);
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
// here you will get the selected category id in model.SelectedId
return Content("Thanks for selecting category id: " + model.SelectedId);
}
你會如何知道在渲染時間選擇的值? – Tuan 2012-04-17 08:11:20
@Tutan這是我的問題,如果有任何答案 – Saeid 2012-04-17 08:16:40