Click here to Skip to main content
15,886,689 members
Please Sign up or sign in to vote.
1.00/5 (1 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
HTML
<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 >
            @Sw.SwName

        </option>

        }
        else
        {
        <option value=@Sw.SwId >
            @Sw.SwName
        </option>

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

1 solution

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

C#
// 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.
 
Share this answer
 

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



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900