我有一个表格,里面有一个下拉列表,我可以在用户发布表单时填充和检索。我想知道是否有另一种方法来处理这个,所以如果表单发布并且有错误我不必再次查找数据来填充下拉列表,因为这就是我现在正在做的。
public ActionResult Identity(int id)
{
var profile =.....
profile.gender = _myservice.GetGenders();
return View(profile);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Identity(int id, Profile profile)
{
if (ModelState.IsValid)
{
// save data and redirect
....
}
// if error, rebuild dropdown and send back to user
var profile =.....
profile.gender = _myservice.GetGenders();
return View(profile);
}
答案 0 :(得分:0)
如果所有用户的下拉列表相同,则使用应用程序缓存。否则,将集合存储在用户的会话高速缓存中。无论哪种方式,机制都基本相同。
public IList<Gender> GetGenders()
{
const string cacheKey = "MyApp_GendersKey";
if (HttpContext.Current.Cache.Get(cacheKey) == null)
{
lock (HttpContext.Current.Cache)
{
HttpContext.Current.Cache.Insert(
cacheKey,
_myservice.GetGenders(),
null,
DateTime.Now.AddHours(1),
System.Web.Caching.Cache.NoSlidingExpiration
);
}
}
return (List<Gender>)HttpContext.Current.Cache.Get(cacheKey);
}