![](/img/trans.png)
[英]@Html.DropDownList or @Html.DropdownlistFor doesn't show current value
[英]Html.DropDownListFor doesn't select the right object
視圖
@Html.DropDownListFor(model => model.ObjectId,
Model.SelectListItems,
"Default",
new { @id = "DropDown" })
調節器
TheViewModel model = ((TheViewModel )Session[nameof(TheViewModel )]);
if (model == null)
{
// fill model with data
}
return View(model);
我從會話中加載了viewmodel,現在想通過id(從模型中)設置選定的值,但是這種方式不起作用。 但是,在post方法中,我可以在模型中獲取正確的信息,並且從會話加載數據時,也可以設置所有內容。
請注意,我不想使用Viewbag
兩個變量都在控制器中設置。 ObjectId是一個int
先感謝您。
請嘗試以下方法:
模型:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Testy20161006.Models
{
public class AnItem
{
public int Id { get; set; }
public string Name { get; set; }
}
public class TheViewModel
{
public TheViewModel()
{
items.Add(new AnItem { Id = 1, Name = "dh1" });
items.Add(new AnItem { Id = 2, Name = "dh2" });
items.Add(new AnItem { Id = 3, Name = "dh3" });
}
public string SelectedValue { get; set; }
public List<AnItem> items = new List<AnItem>();
public IEnumerable<SelectListItem> Items
{
get { return new SelectList(items, "Id", "Name"); }
}
public string RequiredValidationMessage { get; set; }
}
}
控制器:
public class HomeController : Controller
{
[HttpPost]
public ActionResult Index26(TheViewModel m)
{
var selectedText = m.SelectedValue;
return View(m);
}
public ActionResult Index26()
{
TheViewModel m = new TheViewModel();
return View(m);
}
視圖:
@model Testy20161006.Models.TheViewModel
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index26</title>
</head>
<body>
<div>
@using (Html.BeginForm())
{
@Html.LabelFor(m => m.SelectedValue)
@Html.DropDownListFor(m => m.SelectedValue,
new SelectList(Model.Items, "Value", "Text"))
<input type="submit" value="Get Value of dropdown" />
}
</div>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.