我有一個MVC 3應用程序了其中我通過vewmodel從控制器向視圖。該vewmodel包含一些列表<>屬性。MVC3剃刀傳遞到視圖模型電腦板列表<>爲空
public ActionResult MainView()
{
var model = GetViewModel();
return View("SignificantEventsView", model);
}
private SignificantEventsViewModel GetViewModel()
{
var viewModel = new SignificantEventsViewModel();
List<County_Codes> countyCodes = GetCountyCodeList();
List<String> stateNames = countyCodes.OrderBy(o=>o.County_st).Select(o => o.County_st).Distinct().ToList();
viewModel.selectedState = stateNames.FirstOrDefault();
viewModel.CountyCodesList = countyCodes;
viewModel.StateNames = stateNames;
viewModel.SelectedCounties = new String[]{};
viewModel.SelectedCountyCodes = new String[] { };
viewModel.UnSelectedCounties = new String[] { };
viewModel.UnSelectedCountyCodes = new String[]{};
return viewModel;
}
觀是這樣的:
@model ServicingPortal.ViewModels.SignificantEventsViewModel
@{
ViewBag.Title = "Significant Events";
}
<h2>SignificantEvents</h2>
@using (Html.BeginForm("RefreshCounties", "SignificantEvents", FormMethod.Post, new { id = "significantEventsForm", Model }))
{
<fieldset>
<span class="SpanTextboxEdit">
@Html.Label("states", "States")
<br />
<br />
@Html.DropDownListFor(o => @Model.selectedState
, new SelectList(Model.StateNames)
, new { id = "stateDropDown", onchange = "submit()", name = "test" })
</span>
</fieldset>
...
}
當StateDropdownList改變時veiwmodel回傳給控制器,但countyCodes列表總是空。
我試圖在視圖中添加@ Html.HiddenFor(O => @ Model.CountyCodesList),但它仍然返回null。似乎不是null的唯一值是諸如String或String []之類的基本類型。即使列表stateNames爲空。
我不想重建縣代碼列表中的每個帖子後面,因爲沒有涉及實質性的開銷。我必須從數據庫中的所有活躍貸款創建清單,其中有數千個。
我怎樣才能得到一個列表<>從視圖控制器堅持?
我應該解釋什麼,我想在這裏acheive。
我有一個下拉列表和一個多選列表框。下拉列表包含狀態,列表框包含按選定狀態過濾的縣。
我需要在選定狀態更改時過濾列表框內容。
在客戶端執行這個任務是有意義的,但我還沒有找到一個好的解決方案。
我會承認我的JavaScript技能非常有限。 我以某種方式研究的所有解決方案涉及到在服務器端過濾縣列表。 我可以很容易地在服務器端實現這一點,但我認爲,因爲我已經建立了列表,爲什麼不保持它完整,而不是每次都去後端。
出於好奇,嘗試在'GetCountryCodeList()'之後添加'.ToList()'。 – smdrager
其實GetCountryCodeList()已經返回List –
user1337493