Asp.Net MVC下拉列表所选值消失
本文关键字:消失 下拉列表 Net MVC Asp | 更新日期: 2023-09-27 18:16:34
我有两个动作,我正在传递数据给另一个。当我传递数据第二个动作到第一个动作下拉菜单的选择值消失。我用谷歌搜索了好几个小时,但没有找到。以下是我的代码:
第一个有selectlist和动作代码的动作
第一行动:
List<SelectListItem> list= new List<SelectListItem>
{
new SelectListItem { Text = "--- Seçiniz----", Value = ""},
new SelectListItem { Text = "text1", Value = "11"},
new SelectListItem { Text = "text2", Value = "12"},
new SelectListItem {Text = "text3", Value = "13"},
new SelectListItem {Text = "text4", Value = "14"},
new SelectListItem { Text = "text5", Value = "15"}
};
if (TempData["daire"] != null)
{
int daire = Convert.ToInt32(TempData["daire"]);
ViewBag.daire = new SelectList(list, "Value", "Text", TempData["daire"]);
model= (folderBL.getAll().Where(k=>k.Id==daire)).ToList();
}
else
{
ViewBag.daire = new SelectList(list, "Value", "Text","");
model= folderBL.getAll();
}
第二个动作,我获取我的SelectList的值并将数据发送给第一个动作。
public ActionResult SecondAction(string daire)
{
TempData["daire"] = daire;
return RedirectToAction("FirstAction");
}
和视图。
@using (Html.BeginForm("SecondAction","MyDashboard",FormMethod.Post))
{
@Html.DropDownList("daire", (SelectList)ViewBag.daire, new { id = "mydrop" })
<td><input type="submit" value="Send" />
}
当用户单击按钮和页面刷新后,我如何保持选中的列表项?
----------------------------------------- EDİT ----------------------------------------------
这是解决方案,如果有人需要-->只需更改视图。
@using (Html.BeginForm("SecondAction", "MyDashboard", FormMethod.Post))
{
@Html.DropDownList("daire")
<input type="submit" value="Send" />
}
如果TempData
有值,那么您可以传递int
:
if (TempData["daire"] != null)
{
int daire = Convert.ToInt32(TempData["daire"]);
ViewBag.daire = new SelectList(list, "Value", "Text", daire);
,记住TempData
是单读的,它将在你读取值后被删除,如果你想保留它,调用TempData.Keep("daire")
问题是ModelState持有下拉列表传递的值在重定向到第一个控制器之前尝试这个。Refere这个
ModelState.Remove("Page");