ASP.NET MVC에서 모델링하는 데 어려움을 겪고있는 일대 다 관계의 데이터베이스가 있습니다. 단순화를 위해 테이블 A가 사무실 건물을 나타내고 테이블 B가 직원을 나타내고 테이블 C가 직원과 건물간에 일대 다 관계를 만들어 특정 직원이 특정 건물에 액세스 할 수 있음을 나타냅니다.동적 수의 CheckBox가있는 ASP.NET MVC 모델
Employee EmployeeId - int FirstName - string LastName - string Office OfficeId - int Location - string EmployeeOffice EmployeeId - int OfficeId - int
신입 사원이 나올 때, 나는 그들이 접근 할 수있는 모든 사무실 건물에 배정하고 싶습니다. 이를 위해 UI는 각 개별 사무실 건물에 대한 확인란을 호출합니다. 상자를 선택하면 사용자가 관련 사무실 건물에 액세스 할 수 있습니다.
[ ] - Office 1 [ ] - Office 2 [ ] - Office 3 [ ] - Office 4
내 관심사는 사무실이 역동적이어야한다는 것입니다. 즉, 사무실 (또는 사무실)은 언제든지 오거나 갈 수 있습니다.
모델은 실제로 내가 묘사 한 것보다 더 복잡합니다. 다음과 같이 따라서, 나는 (주석 포함) 속성이 모두 포함 된 CreateEmployeeViewModel을 가지고 :
public class CreateEmployeeViewModel
{
public string FirstName
{
get;
set;
}
public string LastName
{
get;
set;
}
public IDictionary Offices
{
get;
private set;
}
public CreateEmployeeViewModel(IDictionary offices)
{
Offices = offices;
}
}
내보기 유사한 내가 클릭하면
<div>
<%: Html.LabelFor(model => model.FirstName) %>
</div>
<div>
<%: Html.TextBoxFor(model => model.FirstName) %>
<%: Html.ValidationMessageFor(model => model.FirstName) %>
</div>
<div>
<%: Html.LabelFor(model => model.LastName) %>
</div>
<div>
<%: Html.TextBoxFor(model => model.LastName) %>
<%: Html.ValidationMessageFor(model => model.LastName) %>
</div>
<!-- This is really ugly, so I welcome any suggested updates -->
<% foreach (KeyValuePair<int, string> office in Model.Offices) { %>
<label for="Office<%: office.Key %>"><%: office.Value %></label>
<input id="Office<%: office.Key %>" type="checkbox" value="<%: office.Key %>" />
<% } %>
은 폼의 제출 '버튼을 다음, 나는에 기대 확인란을 선택하는 것 외에도 강력하게 형식화 된 뷰 모델을 가져와 사용자를 할당 할 사무실을 알 수 있습니다. 나는 다음과 같은 내 액션 메소드 생성 : 추가
public ActionResult Create(CreateUserViewModel user, FormCollection collection)
내가 가 내가 양식을 얻을 수있는 기대했다되는 추가 FormCollection 개체에 대한 이유는 값 을 뷰 모델에있는 것과 (예를 들어, 확인란). 그러나 불행히도 컬렉션에는 정보 만 포함되어 있습니다.
ASP.NET MVC 2.0에서이 디자인으로 양식을 처리하는 올바른 방법은 무엇입니까?
나는 공식적으로 휴식이 필요합니다! 나는 그것을 놓쳤다는 것을 믿을 수 없다. 정말 고맙습니다! – senfo