Lasst uns sagen, dass Sie eine Enumeration wie dieses:Benutzerdefinierte Validierungsserver und Client-Seite für eine Dropdownlist mit Aufzählungstyp bevölkert
public enum ColorsEnum
{
Undefined,
Blue,
Red,
Green
}
Und ein Modell wie folgt aus:
public class Foo
{
public ColorsEnum PreferedColor { get; set; }
}
Mit Blick wie diese :
@model WebUI.Models.Foo
@using (Html.BeginForm())
{
@Html.LabelFor(m => m.PreferedColor)
@Html.DropDownListForEnum(m => m.PreferedColor)
<input type="submit">
}
Hier ist der Helfer für die DropdownListForEnum:
public static IHtmlString DropDownListForEnum<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression)
{
var metaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
if (metaData.ModelType.IsEnum)
{
var names = Enum.GetNames(metaData.ModelType);
var translatedNames = GetTranslatedNames(metaData.ModelType);
var query = from p in names
select new SelectListItem
{
Text = translatedNames.ContainsKey(p) ? translatedNames[p] : p,
Value = p,
Selected = false
};
return htmlHelper.DropDownList(metaData.PropertyName, query.ToList());
}
else
{
throw new ApplicationException(
"The DropDownListForEnum helper function must be used with an enum property");
}
}
Meine Frage: wie Sie die Validierung durchführen kann (Client & Server-Seite) eine gültige Farbe sicher sein durch den Benutzer choosed ist? 'Nicht definierte' Farbe sollte durch den Validierungsprozess abgelehnt werden.
Danke.
Thant ist viel klarer für mich. Vielen Dank. – Bronzato