0
無法找到我在做錯的地方。幫助將不勝感激。謝謝!從下拉列表中選擇選項時無法在ViewModel上設置屬性列表--- MVC4
在我的viewmodel我有屬性ListValues其中包含dropdownlist的數據。我試圖在dropdownlist中進行選擇時在viewmodel上設置屬性(SelectedItem)。但是,在下拉列表中選擇某些內容時,它不會更新該值。在這個例子中,我使用javascript函數來測試值是否已經設置,但它總是說變量未定義。
我的視圖模型:
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總說未定義
看着所有的選擇,但沒有運氣。 – kln 2013-04-04 20:52:19
well @ Model.SelectedItem是沒有意義的,因爲你沒有爲選定的值設置一個值,最好是看看生成的html,你會看到你的功能如下:process(); – davethecoder 2013-04-05 08:02:11
這一行應該設置SelectedItem屬性。 @ Html.DropDownListFor(model => model.SelectedItem,Model.ListValues)。我做錯了什麼? – kln 2013-04-05 14:53:12