Вопрос

Я пытаюсь отобразить в выпадающем списке список "запланированных посещений" на основе предыдущих записей.Я могу собрать информацию, но когда я отображаю ее, выпадающий список превращается в поле ввода, и отображается не та моя информация, которая мне нужна.Формат, в котором я хотел бы, чтобы мои элементы отображались, - это :2/10/2012 - В школе.

Вот что у меня есть для моего кода:

Здесь я собираю информацию о дате и месте визита

public JsonResult GetVisitDetails(Guid visitEntryId)
    {
        var model = new VisitDetailModel();
        VisitEntry visitEntry = _visitEntryService.Get(visitEntryId);
        if(visitEntry == null)
        {
            model.Message = string.Format(Message.NotFoundMessage, Resources.Entities.Visit.EntityName);
            return Json(model);
        }
        model.VisitEntryId = visitEntryId;
        model.VisitTypeId = visitEntry.VisitTypeId;
        if (visitEntry.VisitType != null)
            model.VisitType = visitEntry.VisitDate.ToShortDateString();
        return Json(model);
    }
#region Nested Type:VisitDetailModel

    public class VisitDetailModel
    {
        public Guid VisitEntryId { get; set; }
        public short VisitTypeId { get; set; }
        public string VisitType { get; set; }
        public string VisitDate { get; set; }
        public string Message { get; set; }
    }

    #endregion

Это то, что у меня есть в моей AddToViewModel:

 var visits = _visitEntryService.FindAllForCase(viewModel.CaseId, _currentUser.OfficeId).Where(v=>v.VisitDate <= DateTime.Today.SetToMaximumTime()).OrderByDescending(v=>v.VisitDate).ToList();

        visits.Insert(0, new VisitEntry());
        viewModel.Visits = visits.ToSelectList("VisitEntryId", "Display", viewModel.VisitEntryId.ToString());

        if(viewModel.VisitTypes.Count() == 0)
            ModelState.AddModelError("",string.Format("No active {0} entered.", Kids.Resources.Entities.VisitType.EntityNamePlural));

Моя страница .ascx для отображения выпадающего списка:

<div class="row">
<%:Html.EditorFor(m=>m.VisitEntryId) %>
<%:Html.LabelFor(m=>m.Visits) %>
<%:Html.ValidationMessageFor(m=>m.VisitEntryId) %>

Моя модель просмотра:

 [LocalizedDisplayName("VisitEntry", NameResourceType = typeof(VisitActivity))]
    public short? VisitEntryId { get; set; }

    [UIHint("DropDownList")]
    [DropDownList(DropDownListTargetProperty = "VisitEntryId")]
    public IEnumerable<SelectListItem> Visits { get; set; }

Любая информация о том, почему я не могу отобразить выпадающий список, была бы полезна.

Это было полезно?

Решение

В вашем ascx вы выполняете редактирование для on model.VisitEntryId который является int

Тебе нужен Html.DropDownFor для выпадающего списка.

Ваш model.Visits это список выбора, и я предполагаю, что вам следует сделать:

<%:Html.LabelFor(m=>m.VisitEntryId) %>
<%:Html.EditorFor(m=>m.Visits) %>
<%:Html.ValidationMessageFor(m=>m.VisitEntryId) %>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top