У меня есть приложение 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» значение null передается вместо строки, несмотря на правильность SearchKey. Однако все это работает для другого взгляда. Что я делаю не так?
Когда я добавляю [HttpPost] к этому методу, он говорит, что его невозможно найти. –
Вам понадобятся методы HttpGet и HttpPost, аналогичные тому, как вы реализовали для индекса – aquaraga