Html.ListBox에 약간 문제가 있습니다.Html.ListBox() 및 MultiselectList
ASP.NET MVC 1.0에서 개인 블로그를 개발 중이며 게시물을 추가하고 편집 할 수있는 adminpanel
을 만들었습니다. 이 두 작업 중에 태그도 추가 할 수 있습니다.
나는 모든 태그를 나열하기 위해 Html.ListBox()
도우미를 사용한다고 생각하므로 게시물에 추가 할 여러 태그를 선택할 수 있습니다! 문제는 추가 모드 중에는 아니지만 편집 모드에서 게시물의 태그를 미리 선택해야합니다.
나는 MultiSelectList
을 사용해야하고, 생성자 패스에서는 태그의 목록과 태그의 목록 (사전 선택된 값)을 사용해야한다고 읽었습니다.
하지만이 클래스를 사용하는 방법을 모르겠습니다. 내가 게시
, 일부 코드 :
이것은
public IEnumerable<SelectListItem> GetTagsListBox()
{
return from t in db.Tags
orderby t.IDTag descending
select new SelectListItem {
Text = t.TagName,
Value = t.IDTag.ToString(),
};
}
그래서 편집 (가져 오기 및 포스트)에 selectList의 모든 목록 태그를 얻을 내 모델 방법, 추가 (가져 오기 및 포스트) 내가 사용하는 것입니다 이 목록을 전달할 ViewData는 Html.ListBox()
입니다.
ViewData["Tags"] = tagdb.GetTagsListBox();
그리고 내보기
<%=Html.ListBox("Tags",ViewData["Tags"] as SelectList) %>
에서
그래서이 코드로는 추가 모드에서 괜찮습니다.하지만 편집 모드에서 해당 값을 사전 선택해야합니다.
이제 모든 태그 bypostid를 가져 오는 메소드를 만들어야합니다.
다음으로 ViewData
무엇을 전달해야합니까?
아무 것도 제안하지 않습니까?
예, 그렇지만이 방법으로 모든 태그를 선택했기 때문에 게시물에있는 모든 태그를 미리 선택해야합니다. 예를 들어, 태그가 C# 인 경우 목록 상자에서 mvc를 선택하면이 태그 만 미리 선택되고 다른 모든 태그는 선택되지 않습니다. 느낌표를 유감스럽게 생각합니다. – Ivan90
루프를 사용하여 해당 게시물의 태그에 대해'Selected' 속성을 설정해야합니다. – SLaks
그럼, SelectString을 사용하여 PostID로 태그 목록을 반복하는 루프를 SelectListItem에 추가하고 foreach 항목의 속성을 true로 사용할 수 있습니까? – Ivan90