我可以将TempData放在viewbag中,反之亦然吗?即使我与sqlserver共享会话,也可以吗?

时间:2019-01-11 07:04:56

标签: asp.net-mvc

我正在使用一个视图包来显示视图的下拉列表。.现在,当我的post方法完成后,它返回视图,然后抛出下拉列表异常,因为在那之后我的视图包什么都没有了。

[HttpGet]
public ActionResult Add(string id)
{
    List<req> objlist = new List<req>();
    objlist = Getlist(Id);
    ViewBag.List = objlist;
    TempData["tempList"] = ViewBag.List;
    return View();
}

上面是我的Get方法,对于POST方法,我可以这样做

[HttpPost]
public ActionResult Add()
{
    ViewBag.List =  TempData["tempList"];
    return View();
}

所有这些都是因为我不想再次运行SQL调用。

2 个答案:

答案 0 :(得分:0)

修改您的操作方法,使其看起来像:


UIView.animate(withDuration: 1.0, animations: {

  //Your imageview
  self.imageView.center = CGPoint(x: self.view.frame.size.width/2, y: self.view.frame.size.height/2)

  self.imageView.autoresizingMask = [.flexibleWidth, .flexibleHeight]

 }, completion:nil)

[HttpGet]
public ActionResult Add(string id)
{
    List<req> objlist = new List<req>();
    objlist = Getlist(Id);
    ViewBag.List = objlist;
    TempData["tempList"] = objlist;
    return View();
}

答案 1 :(得分:0)

我建议使用模型。

public class ModelClass
{
    public List<req> List { get; set; }
}

..

public void InitModel(string id, ModelClass Model)
{
    if(Model == null)
    {
        Model = new ModelClass();
    }

    Model.List = Getlist(id);
}

..

[HttpGet]
public ActionResult Add(string id)
{
    ModelClass Model = null;
    InitModel(id: id, Model: Model);
    return View(Model);
}

[HttpPost]
public ActionResult Add(ModelClass Model)
{
    InitModel(id: id, Model: Model);
    return View(Model);
}