![](/img/trans.png)
[英]ASP.NET MVC 2 - Retrieving the selected value from a dropdownlist and a listbox
[英]ASP.Net MVC DropdownList and selected value
我能夠為我的MVC項目創建一個下拉列表,但是未在下拉列表中將該值選擇為選定值。 它只是從頭開始顯示整個縣列表,值來自數據庫。 我嘗試從以前的帖子中找到它,但這很令人困惑。 請給我建議任何想法。
控制器代碼
public ActionResult Edit(int i)
{
var items = new SelectList(db.MST_COUNTRies.ToList(), "COUNTRY_ID", "COUNTRY_NM");
ViewData["MST_COUNTRies"] = items;
}
查看代碼
<%= Html.DropDownList("COUNTRY_ID", (SelectList)ViewData["MST_COUNTRies"])%>
我建議您使用強類型的視圖(不需要ViewData
和魔術字符串)。 與往常一樣,首先定義視圖模型類:
public class CountriesViewModel
{
public int? SelectedCountryId { get; set; }
public IEnumerable<SelectListItem> Countries { get; set; }
}
然后您的控制器:
public class HomeController : Controller
{
public ActionResult Index(int? id)
{
// TODO: Fetch those from your DB
var countries = new[]
{
new { Id = 1, Name = "Country 1" },
new { Id = 2, Name = "Country 2" },
};
var model = new CountriesViewModel
{
Countries = new SelectList(countries, "Id", "Name", id)
};
return View(model);
}
}
最后是您的強類型視圖:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SomeNs.Models.CountriesViewModel>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.DropDownListFor(
x => x.SelectedCountryId,
Model.Countries,
"-- Select Country --")
%>
</asp:Content>
現在,當您調用/home/index
您沒有選擇任何國家,但是當您將id
傳遞給該操作(例如/home/index/2
您將獲得具有該ID的國家。
備注:如果您使用的是ASP.NET MVC 1.0,則不會使用強類型的DropDownListFor幫助器,而可以使用以下替代方法:
<%= Html.DropDownList(
"SelectedCountryId",
Model.Countries,
"-- Select Country --")
%>
嘗試這樣的事情:
public ActionResult Edit(int i)
{
var items = new SelectList(db.MST_COUNTRies.ToList(), "COUNTRY_ID", "COUNTRY_NM", yourSelectedCountryId);
ViewData["COUNTRY_ID"] = items;
}
然后在您看來:
<%= Html.DropDownList("COUNTRY_ID"); %>
一些注意事項:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.