Postのデータベースからの値を持つ単純なドロップダウン ボックスを持つフォームが 1 つあります。そのドロップボックスの値がセッションに挿入されます。作成ページでそのセッション値を使用していくつかのカテゴリを自動入力すると思いますが、どういうわけか、2 番目のページでセッションが NULL または空になるようです。
フォーム 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();
}
FORM 1 に移動して値を選択し、FORM 2 に移動すると、IF ステートメントで問題が発生する可能性があります。リダイレクトされないため、SESSION に値があり、それが失われているか、他の何かが失われています。
フォーム 2 ページの表示/作成
<b>Step: 2 out of 2</b>
@Session["address"]
Form 2 についてはまだ詳しく説明していますが、その部分に焦点を当てています。あるフォームから別のフォームに値を運ぶより良い方法はありますか? ちなみに、フォーム 2 に直接進むと Sesserror にリダイレクトされるため、セッションは最初は機能します。