リンクがクリックされたときに、別のページの同じ値に基づいてページを表示する必要がある MVC アプリケーションがあります。渡されるものが文字列ではなく null である理由がわかりません。私のコードは以下です。
コントローラ:
public string searchQ
{
get { return (string)Session["searchQ"]; }
set { Session["searchQ"] = value; }
}
public ActionResult Index()
{
Session["InitialLoad"] = "Yes";
return View();
}
[HttpPost]
public ActionResult Index(string heatSearch)
{
ViewBag.SearchKey = heatSearch;
searchQ = heatSearch;
return View();
}
public ActionResult Index_Perm()
{
ViewBag.SearchKey = searchQ;
return View();
}
public ActionResult PartialMainLim(string heatSearch)
{
HomeModel C = new HomeModel();
ChemViewModel D = new ChemViewModel();
D = C.QueryResults(heatSearch);
return PartialView(D);
}
public ActionResult PartialMain(string heatSearch)
{
HomeModel C = new HomeModel();
ChemViewModel D = new ChemViewModel();
D = C.QueryResults(heatSearch);
return PartialView(D);
}
インデックス ビューのコードは次のようになります (これは機能します)。
@if (ViewBag.SearchKey != null)
{
<div>
@Html.Action("PartialMainLim", "Home", (string)ViewBag.SearchKey)
</div>
}
そして index_perm ビューで:
@if(ViewBag.SearchKey != null)
{
<div>
@Html.Action("PartialMain", "Home", (string)ViewBag.SearchKey)
</div>
}
両方のビューで SearchKey の値を確認すると、正しいです。ただし、メソッド「PartialMain」の場合、SearchKey が正しいにもかかわらず、文字列の代わりに null が渡されます。ただし、これはすべて他のビューでも機能します。私は何を間違っていますか?