Search code examples
asp.net-mvc-4razorrazor-2asp.net-webpages

Web pages Razor 2 - how to keep selected option after postback


So I have this little cshtml page in a .NET 4.0 ASP.NET Web Pages Razor v2 solution.

@{
    Layout = "~/_SiteLayout.cshtml";
    Page.Title = "News For All Crew";

    var db = Database.Open("ConnectionString");    
    var departmentsQry = "select Name from Info_Department_Names IPN order by Name";       
}

<form method="post" action="">
    <select id="selectStation" name="selectStation" onchange="this.form.submit();">
        @foreach (var dept in db.Query(departmentsQry))
        {
            <option value="@dept.Name">@dept.Name</option>
        }
    </select> 
</form>

When a user selects an option, I would like it to remain select after postback. How do I do this?


Solution

  • @foreach (var dept in db.Query(departmentsQry))
    {
        <option value="@dept.Name" selected="@(dept.Name == Request["selectStation"])">@dept.Name</option>
    }
    

    See this for more information on conditional attributes: http://www.mikesdotnetting.com/Article/201/Cleaner-Conditional-HTML-Attributes-In-Razor-Web-Pages