我想将下拉列表中的存储值显示为选定值。我不知道如何在MVC中这样做。
我的代码是
<%: Html.DropDownList("basic-qualification-container" + i.ToString(),
new SelectList((IEnumerable<Dial4Jobz.Models.Degree>)ViewData["CandidateBasicQualifications"], "Id", "Name", (IEnumerable<int>)ViewData["BasicQualificationDegrees"]),
new { @class = "qualification" })%>
我从下拉列表中选择一些选项并提交。加载页面后,将显示最后存储的值。这是我的问题。
答案 0 :(得分:1)
您可能正在为selectedValue参数发送错误的值。您应该在SelectList构造函数中设置值。
<%: Html.DropDownList("basic-qualification-container" + i.ToString(),
new SelectList((IEnumerable<Dial4Jobz.Models.Degree>)ViewData["CandidateBasicQualifications"],
"Id",
"Name",
ViewData["selectedValue"]), //set selected value here
new { @class = "qualification" })%>
更好的方法是将ViewData中的所有数据放入模型中并将其强烈输入到您的视图中。
以下是定义模型的方法:
public class SampleModel
{
private string SelectedOption { get; set; }
private IEnumerable<SelectListItem> Options { get; set; }
}
然后在您的操作方法中提供值:
public ActionResult Index()
{
//get data from db
SampleModel model = new SampleModel
{
SelectedOption = selectedOption,
Options = new SelectList(options, "Id", "Name")
};
return View(model);
}
在强烈输入后,您可以查看SampleModel,您可以在视图中使用Html.DropDownListFor帮助器。
<%: Html.DropDownListFor(model => model.SelectedOption,
Model.Options,
new { @class = "qualification" }) %>
答案 1 :(得分:0)
DropDownList Helper
Html.DropDownList(
string name,
IEnumerable<SelectListItem> selectList,
ViewData["lastSelected"], // String Selected Option
object htmlAttributes)
您可以使用viewData显示所选值,如下所示。
控制器
// Set Default selected
public ActionResult SomeAction()
{
ViewData["lastSelected"] = "Default Text";
return View();
}
发布后,您应该再次设置以所选值显示的viewData。
// Set selected value after posting
[HttpPost]
public ActionResult SomeAction()
{
.....
ViewData["lastSelected"] = "Changed Text (selected value)";
return View();
}