我有一个带有简单下拉框的表单,其中包含来自帖子上的数据库的值,该会话箱中的值将被插入到会话中。我认为在创建页面上使用该会话值来自动填充某些类别,但不知何故,似乎会话在第二页上变为NULL或Empty。
表示1行动
[HttpPost]
public ActionResult select(listings listing)
{
Session["address"] = ViewBag.CategoryID;
return View();
}
表单1视图
<form method="post" action="create">
@Html.DropDownList("CategoryID")
<input type="submit" value="step 2"/>
</form>
表单2操作
public ActionResult Create()
{
// The "IF" works correctly but it seems like it is making the SESSION= NULL
if (Session["address"] == null)
{
return RedirectToAction("sesserror");
}
string tt = (string)Session["address"];
var getlisting = (from s in db.relistings where tt==s.address select s).FirstOrDefault();
return View();
}
问题看起来可能是它在IF语句中,如果我去FORM 1选择一个值并转到FORM 2,它不会重定向我,所以SESSION有一个值,它正在丢失它或其他东西。
表单2查看/创建页面
<b>Step: 2 out of 2</b>
@Session["address"]
我在表格2上有更多内容,但我专注于那部分。是否有更好的方法将值从1种形式传递到另一种形式?顺便说一下Session最初的工作方式,因为如果我直接进入表格2,我会被重定向到Sesserror。