モデルに次のコードがあります。
public class ContactDaySelectorAttribute : SelectorAttribute
{
public override IEnumerable<SelectListItem> GetItems()
{
var contactDay = new List<ContactDay>
{
new ContactDay {Id = 1, Name = "Monday"},
new ContactDay {Id = 2, Name = "Tuesday"},
new ContactDay {Id = 3, Name = "Wednesday"},
new ContactDay {Id = 4, Name = "Thursday"},
new ContactDay {Id = 5, Name = "Friday"},
new ContactDay {Id = 6, Name = "Saturday"},
};
return contactDay.ToSelectList(m => m.Id, m => m.Name);
}
}
//
public class ContactDay
{
public int Id { get; set; }
public string Name { get; set; }
}
//
[ContactDaySelector]
public virtual int? ContactDayCheckBox { get; set; }
//
[ContactDaySelector]
[ReadOnly(true)]
public string ContactDayCheckBoxPost
{
get { return ContactDayCheckBox.ToString(); }
}
私はデータベースに値ContactDayCheckBox
を保存するために使用します。選択した項目(チェックボックス)を確認ビューに表示するためint?
に使用します。ContactDayCheckBoxPost
ビューでこれを@Html.EditorFor(m => m.ContactDayCheckBoxPost)
行い、ユーザーが以前に1日以上を選択した場合(たとえば)、1日の「名前」のみが表示されます(つまり、月曜日、火曜日が以前に選択された場合、ビューには「月曜日」のみが表示されます) )。
以前に選択したすべての選択肢を表示するビューを取得するにはどうすればよいですか?試し@foreach
ましたが、では機能しません。選択肢の間にコンマを挿入するint
ループのバリエーションを試し.Split(',')
ましたが、実際に得られるのは実際の「Id」値(たとえば、「Monday」の代わりに「1」)だけです。 "月曜日")。
前もって感謝します。