문제

이전 항목을 기반으로 '예정된 방문' 목록을 드롭다운 목록 상자에 표시하려고 합니다.정보를 수집할 수 있지만 표시하면 드롭다운 목록 상자가 입력 상자로 바뀌고 원하는 정보가 표시되지 않습니다.내 항목을 표시하려는 형식은 다음과 같습니다.2012년 10월 2일 - 학교에서.

내 코드는 다음과 같습니다.

이곳에서 방문 날짜와 장소 등의 정보를 수집합니다.

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에서 EditorFor를 수행 중입니다. model.VisitEntryId 이는 int

당신은 Html.DropDownFor 드롭다운 목록의 경우

당신의 model.Visits 은 SelectList이며 다음과 같이 해야 할 것 같습니다.

<%:Html.LabelFor(m=>m.VisitEntryId) %>
<%:Html.EditorFor(m=>m.Visits) %>
<%:Html.ValidationMessageFor(m=>m.VisitEntryId) %>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top