MVC下拉列表httppost,需要查找

时间:2016-03-23 18:21:51

标签: c# asp.net asp.net-mvc

我有一个表格,里面有一个下拉列表,我可以在用户发布表单时填充和检索。我想知道是否有另一种方法来处理这个,所以如果表单发布并且有错误我不必再次查找数据来填充下拉列表,因为这就是我现在正在做的。

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);
}

1 个答案:

答案 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);
}