레거시 코드 인 MVC
응용 프로그램을 사용하고 있습니다. 지금까지 내가 만든 변경 사항은 AccountDivisionModel
개체 목록을 검색하는 2 가지 호출입니다. 원래 코드는 저장 프로 시저를 호출하고 데이터가 포함 된 ObjectResult
을 반환했습니다.MVS보기에서 MultiSelectList.SelectedValues를 표시 할 수 없습니다.
public class AccountDivisionModel
{
int DivisionID;
string DivisionName;
int AccountID;
bool IsActive;
}
나는 계정과 계정의 접촉에 속하는 (선택) 부서의 목록에 속하는 부서의 목록을 검색이 호출을하고있다. 심지어 내가 텍스트 상자 (@placeholder)를 클릭하면 비록 내 편집보기에서
var aDivs = Account.GetDivisionByAccountID(c.AccountID).ToArray();
var cDivs = Contact.GetDivisionByContactID(c.ContactID).ToArray();
ViewBag.AccountDivisions = new MultiSelectList(aDivs, "DivisionID", "DivisionName", cDivs);
SelectedValues
가 표시되지 않는 이유를 모르겠어요
@Html.DropDownList("AccountDivisions", null, htmlAttributes: new { @class = "form-control", @multiple = "multiple", @placeholder = "Select Division(s)" })
는, 나는 드롭을 채울 볼 수 있습니다 모든 부서와 함께 다운 목록.
내가 잘못 했습니까?
아래는 현재 작업중인 인터페이스의 이미지입니다. 보시다시피 상자에 표시된 선택 값과 선택되지 않은 나머지 항목을 보여주는 드롭 다운 목록. 즉, 당신은이 모든 잘못된 일을 할 수
@Html.DropDownList("AccountDivisions", null, htmlAttributes: new
{ @class = "form-control", multiple = "multiple", placeholder = "Select Division(s)" })
C#에서 예약어이기 때문에
일부 값에 따라 목록에서 미리 선택된 옵션 중 일부가 표시 될 것으로 예상합니까? –
예. 이 페이지에 올 때마다 이전에 연락처에 추가 한 부서가 표시됩니다. 드롭 다운 목록에서 더 많은 부분을 추가하거나 사전 선택된 부분을 제거 할 수 있습니다. –
'MultiSelectList'를 만들기 위해 사용하고있는 오버로드는 선택된 값의 콜렉션을 받아들입니다. 옵션 값으로 'DivisionID'를 사용하고 있기 때문에 (마지막으로'int'라고 가정합니다), 마지막 매개 변수는 여러분이 선택하고자하는 값을 포함하는'IEnumerable'이어야합니다. 그러나 당신은 실제로'int [] SelectedDivisions'와 같은 속성을 가진 뷰 모델을 사용하고 @Html.ListBoxFor (m => m.SelectedDivisions, Model.AccountDivisions)를 사용하여 뷰 모델을 바인딩하는 것을 고려해야합니다. 상자. –