Выбранное значение в раскрывающемся списке Asp.Net MVC исчезает

У меня есть два действия, и я передаю данные одно другому. Когда я передаю данные, второе действие для первого действия, выбранное значение в раскрывающемся списке исчезает. Я искал в Google много часов, но мне это не удалось. Вот мои коды:

Первое действие со списком выбора и кодами действий.

Первое действие:

 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();
            }

Второе действие, я получаю значение daire для своего списка 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" />  
           }

Как я могу сохранить выбранный ListItem, когда пользователь нажимает кнопку и после обновления страницы?

-----------------------------------------EDİT----------------------------------------------

Вот решение, если кому-то нужно -> Просто измените вид.

@using (Html.BeginForm("SecondAction", "MyDashboard", FormMethod.Post))
{
    @Html.DropDownList("daire")
    <input type="submit" value="Send" />
}

person kojirosan    schedule 06.08.2014    source источник


Ответы (2)


Если TempData имеет значение, вы можете передать int:

if (TempData["daire"] != null)
        {

            int daire = Convert.ToInt32(TempData["daire"]);
            ViewBag.daire = new SelectList(list, "Value", "Text", daire);

и помните, что TempData является однократным чтением, оно будет удалено после того, как вы прочитаете значение, если вы хотите сохранить его, вызовите TempData.Keep("daire")

person Ehsan Sajjad    schedule 06.08.2014
comment
Спасибо за ваш ответ. Я вставил код, который вы пишете, но все еще раскрывающийся список выбранных значений. - person kojirosan; 06.08.2014
comment
я написал контроллер вместо действия. я пытаюсь передать действие данных в действие. - person kojirosan; 07.08.2014

Проблема заключалась в том, что ModelState удерживал переданное значение раскрывающегося списка. Попробуйте это перед перенаправлением на первый контроллер. Ссылка

ModelState.Remove("Page");
person Amol    schedule 06.08.2014