ورود

View Full Version : ست نشدن مقدار انتخاب شده از EnumDropDownlistFor



resident
سه شنبه 05 فروردین 1393, 17:36 عصر
سلام.
من از کد زیر برای تبدیل enum به dropdownlist استفاده می کنم. درست کار می کنه.
تنها موردی که داره اینه که در حالت ویرایش مقدار انتخاب شده رو انتخاب نمی کنه.
Trace کردم دیدم که در کد مقدار Selected درست ست میشه اما نمیدونم چرا نمایش نمیده
ممنون میشم اگه دوستان راهنمایی کنند..


public static IHtmlString EnumDropDownListFor<TModel, TEnum>(this HtmlHelper<TModel> html, Expression<Func<TModel, TEnum>> expression, string optionLabel, object htmlAttributes)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);

var enumType = Nullable.GetUnderlyingType(metadata.ModelType) ?? metadata.ModelType;

var enumValues = Enum.GetValues(enumType).Cast<object>();

var items = from enumValue in enumValues
select new SelectListItem
{
Text = GetResourceValueForEnumValue(enumValue),
Value = Convert.ToInt32(enumValue).ToString(),
Selected = enumValue.Equals(metadata.Model)
};


return html.DropDownListFor(expression, items, optionLabel, htmlAttributes);
}

ali_autumnal
پنج شنبه 07 فروردین 1393, 12:21 عصر
از یه راه سخت داری به هدف می رسی!!

به این روش یه نگاهی بنداز:

آیتمی از یک مدل اصلی که به View ارسال خواهد شد




public class NewsGroupViewModel
{
public int Id { get; set; }
public string Name { get; set; }
}



[Required(ErrorMessage = " انتخاب نشده است!")]
[Range(3,99999,ErrorMessage=" انتخاب نشده است!")]
[Display(Name = "گروه خبری")]
public int CreateNewsGroupId { set; get; }
public IEnumerable<NewsGroupViewModel> NewsGroup { set; get; }


NewsGroup باید در لایه سرویس پروژه مقدار دهی شود سپس جهت استفاده در View های Create و Edit به شکل زیر نوشته خواهد شد:





<div class="editor-label">
@Html.LabelFor(model => model.CreateNewsGroupId)@Html.ValidationMessageFor (model => model.CreateNewsGroupId, "", new { @class = "error" })
</div>
<div class="editor-text">
@Html.DropDownListFor(m => m.CreateNewsGroupId, new SelectList(Model.NewsGroup, "Id", "Name"))
</div>

خودش بصورت اتوماتیک در Edit گزینه انتخاب شده را انتخاب خواهد کرد

resident
پنج شنبه 07 فروردین 1393, 14:44 عصر
ممنون علی آقا از کمکتون...
ولی من در مورد dropdownlist برا ی Enum ها صحبت کردم نه dropdownlist های معمولی..