Click here to Skip to main content
13,197,548 members (51,400 online)
Rate this:
Please Sign up or sign in to vote.
See more:
How to keep the validation message in mvc3 if dropdownlist is formed using select and option tags.

Please find the HTML code for the dropDownlist
<select name="SwList" style="width: 150px;">
    <option>--select-- </option>
    @foreach (var Sw in Model.SwDetails)
        if (SwDetails.SwId == @Sw.SwId)
        <option selected="selected" value=@Sw.SwId >


        <option value=@Sw.SwId >

       @*  @Html.ValidationMessageFor(Sw => Sw.SwId)*@
Posted 14-Sep-12 3:14am
Updated 14-Sep-12 3:20am

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

Better to have a model that collects the ID of the selected item, as well as your list of possible options.

e.g. Soemthing along these lines

// View model
public class MyViewModel
    public int SelectedValue {get; set;}
    public IEnumerable<swdetails> {get; set;}
// Controller
public ActionResult ShowMyView
    var model = new MyViewModel();
    model.SwDetails = // However you get your list of items    
// View
@model MyViewModel
@Html.DropDownListFor(m => m.SelectedValue, new SelectList(Model.RatingScaleOptions, "SwId", "SwName"), "[Select One]")
@Html.ValidationMessageFor(m => m.SelectedValue)</swdetails>

So, you use the 'SelectValue' to retrieve the value that is set by your user picking an item. Validation is against this field.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy |
Web02 | 2.8.171020.1 | Last Updated 14 Sep 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100