无法找到我做错的地方。帮助将不胜感激。谢谢!
在我的viewmodel中,我有属性ListValues,其中包含dropdownlist的数据。我正在尝试在dropdownlist中进行选择时在viewmodel上设置属性(SelectedItem)。但是,当在下拉列表中选择某些内容时,它不会更新该值。在这个例子中,我使用javascript函数来测试是否已经设置了值,但是它总是表示变量undefined。
我的ViewModel:
public class ViewModel
{
private readonly List<SelectListItem> items;
public ViewModel()
{
items = new List<SelectListItem>();
items.Add(new SelectListItem() { Text = "Texas", Value = "1", Selected = true });
items.Add(new SelectListItem() { Text = "Illinios", Value = "2", Selected = false });
items.Add(new SelectListItem() { Text = "New York", Value = "3", Selected = false });
items.Add(new SelectListItem() { Text = "Kansas", Value = "4", Selected = false });
ListValues = items;
}
public string SelectedItem { get; set; }
public IEnumerable<SelectListItem> ListValues { get; set; }
}
行动方法:
public class EmployersController : Controller
{
//
// GET: /Employers/
public ActionResult Index()
{
ViewModel vm = new ViewModel();
return View(vm);
}
}
查看:
@using System.Collections
@model DemoMVCApplication.Models.ViewModel
<script src="~/Scripts/Custom/default.js"></script>
@{
ViewBag.Title = "Index";
}
@Html.DropDownListFor(model => model.SelectedItem, Model.ListValues)
<button id="button123" onclick="process(@Model.SelectedItem);">Call Script</button>
<h2>Index</h2>
javascript来测试是否已设置值
function process(x) {
var result = x;
}
x总是说未定义
答案 0 :(得分:0)
这是:How to write a simple Html.DropDownListFor()?
的副本但是:<%= Html.DropDownListFor(n => n.MyColorId, new SelectList(Colors, "ColorId", "Name")) %>
是您需要的答案代码,这是您还需要将您的类型转换为selectList,尽管这已经是模型中的那种类型。