| Rick Strahl's Web Log |
So I ran into an interesting behavior today as I deployed my first MVC 4 app tonight. I have a list form that has a filter drop down that allows selection of categories. This list is static and rarely changes so rather than loading these items from the database each time I load the items once and then cache the actual SelectListItem[] array in a static property. However, when we put the site online tonight we immediately noticed that the drop down list was coming up with pre-set values that randomly changed. Didn't take me long to
trace this back to the cached list of SelectListItem[]. Clearly the list was getting updated - apparently through the model binding process in the selection postback. To clarify the scenario here's the drop down list definition in the Razor View:@Html.DropDownListFor(mod => mod.QueryParameters.Category, Model.CategoryList, "All Categories")
where Model.CategoryList gets set with:[HttpPost]
[CompressContent]
public ActionResult List(MessageListViewModel model)
{
InitializeViewModel(model);
busEntry entryBus = new busEntry();
var entries = entryBus.GetEntryList(model.QueryParameters);
model.Entries = entries;
model.DisplayMode = ApplicationDisplayModes.Standard;
model.CategoryList = AppUtils.GetCachedCategoryList();
return...(Read whole news on source site)
return...(Read whole news on source site)




