Search code examples
c#asp.net-mvcselectrazordrop-down-menu

DropDownList selected item changed after click in ASP.NET MVC using C#


Model class:

public class NewsCategoriesModel 
{
    public int NewsCategoriesID { get; set; }        
    public string NewsCategoriesName { get; set; }
}

Controller:

public ActionResult NewsEdit(int ID, dms_New dsn) 
{
    dsn = (from a in dc.dms_News where a.NewsID == ID select a).FirstOrDefault();
    var categories = (from b in dc.dms_NewsCategories select b).ToList();
    var selectedValue = dsn.NewsCategoriesID;
    SelectList ListCategories = new SelectList(categories, "NewsCategoriesID", "NewsCategoriesName",selectedValue);

    // ViewBag.NewsCategoriesID = new SelectList(categories as IEnumerable<dms_NewsCategory>, "NewsCategoriesID", "NewsCategoriesName", dsn.NewsCategoriesID);
    ViewBag.NewsCategoriesID = ListCategories;
    return View(dsn);
}

View :

@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
        <div>
            @Html.DropDownList("Students", (SelectList)ViewBag.students, new { @class = "form-control" })
        </div>
        <input type="submit" value="Select" id="Submit" class="btn btn-default"  />
}

But I still not stop selected value in dropdown list


Solution

  • I am adding in view page model declaration on top of page

    @model WebApplication4.Models.Student
    

    and using 'DropDownListFor' instead of 'DropDownList' then

    <div class="col-md-4">
            <h2>Getting started</h2>
            @using (Html.BeginForm("Index", "Home", FormMethod.Post))
            {
            <div>
                @Html.DropDownListFor(model => model.Id, (IEnumerable<SelectListItem>)ViewBag.students, new { @class = "form-control" })
            </div>
            <input type="submit" value="Select" id="Submit" class="btn btn-default"  />
            }
        </div>
    

    After that selected value not changed when we click event fire. :-)