locked
How do i retain Dropdown selected after postback too RRS feed

  • Question

  • User2041008840 posted

    Hello, 
    i am searching list by selecting name from dropdownlist and clicking on search button. 
    after postback selected value get reset. How do I retain it after postback too. 
    in asp.net core 3.0

    Wednesday, December 18, 2019 1:06 PM

Answers

  • User1535942433 posted

    Hi Prathamesh,

    Accroding to your description, I suggest you could save value in viewdata before return view.Then pass selected dropdown value to controller when click the button.

    More details ,you could refer to below codes:

    View:

    View:
    <form>
        <select asp-for="Id" asp-items="@((SelectList)ViewData["vm.Select"])">
            <option>Please select one</option>
        </select>
        <input id="Button1" type="submit" value="button" onclick="Test()"/>
    
    </form>
    
    
    @section Scripts{
    <script>
        function Test() {
             location.href("/home/index");
        }
    
    </script>

    Controller:

    Model vm = new Model()
            {
                Select = new List<SelectListItem>
                {
                    new SelectListItem {Text = "Yellow", Value = "1"},
                    new SelectListItem {Text = "Red", Value = "2"},
                    new SelectListItem {Text = "Black", Value = "3"},
                }
            };
            public IActionResult Index(string id)
            {
                if(id==null)
                {
                    ViewData["vm.Select"] = new SelectList(vm.Select, "Value", "Value");
                }
                else
                {
                    ViewData["vm.Select"] = new SelectList(vm.Select, "Value", "Value",id);
    
                }
                return View(vm);
            }
            [HttpPost]
            public IActionResult Click(string id)
            {
                return RedirectToAction("Index",id);
            }

    Model:

    public class Model
        {
            public int Id { get; set; }
            public string Color { get; set; }
            public List<SelectListItem> Select { set; get; }
        }

    Result:

    Best regards,

    Yijing Sun

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Thursday, December 19, 2019 9:28 AM

All replies

  • User1535942433 posted

    Hi Prathamesh,

    Accroding to your description, I suggest you could save value in viewdata before return view.Then pass selected dropdown value to controller when click the button.

    More details ,you could refer to below codes:

    View:

    View:
    <form>
        <select asp-for="Id" asp-items="@((SelectList)ViewData["vm.Select"])">
            <option>Please select one</option>
        </select>
        <input id="Button1" type="submit" value="button" onclick="Test()"/>
    
    </form>
    
    
    @section Scripts{
    <script>
        function Test() {
             location.href("/home/index");
        }
    
    </script>

    Controller:

    Model vm = new Model()
            {
                Select = new List<SelectListItem>
                {
                    new SelectListItem {Text = "Yellow", Value = "1"},
                    new SelectListItem {Text = "Red", Value = "2"},
                    new SelectListItem {Text = "Black", Value = "3"},
                }
            };
            public IActionResult Index(string id)
            {
                if(id==null)
                {
                    ViewData["vm.Select"] = new SelectList(vm.Select, "Value", "Value");
                }
                else
                {
                    ViewData["vm.Select"] = new SelectList(vm.Select, "Value", "Value",id);
    
                }
                return View(vm);
            }
            [HttpPost]
            public IActionResult Click(string id)
            {
                return RedirectToAction("Index",id);
            }

    Model:

    public class Model
        {
            public int Id { get; set; }
            public string Color { get; set; }
            public List<SelectListItem> Select { set; get; }
        }

    Result:

    Best regards,

    Yijing Sun

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Thursday, December 19, 2019 9:28 AM
  • User2041008840 posted

    this is helpful sir thank you.

    Thursday, December 19, 2019 10:13 AM