Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: ASP.NET MVC3
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 >
                                                        @Sw.SwName
                                                         
                                                    </option> 
                                                    
                                                    }
                                                    else
                                                    { 
                                                    <option value=@Sw.SwId >
                                                        @Sw.SwName
                                                    </option> 
                                                   
                                                    }
                                                   @*  @Html.ValidationMessageFor(Sw => Sw.SwId)*@
                                                }
                                            </select>
Posted 14-Sep-12 4:14am
apr1234683
Edited 14-Sep-12 4:20am
v3

1 solution

Rate this: bad
good
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.
  Permalink  

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

  Print Answers RSS
0 OriginalGriff 250
1 Jochen Arndt 155
2 PIEBALDconsult 150
3 DamithSL 125
4 Afzaal Ahmad Zeeshan 120
0 OriginalGriff 5,695
1 DamithSL 4,591
2 Maciej Los 4,012
3 Kornfeld Eliyahu Peter 3,480
4 Sergey Alexandrovich Kryukov 3,190


Advertise | Privacy | Mobile
Web02 | 2.8.141220.1 | Last Updated 14 Sep 2012
Copyright © CodeProject, 1999-2014
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