여러 가지 속성, SelectList 및 자식 개체의 배열을 포함하는 viewmodel이 있습니다.ASP.NET MVC 편집 페이지에서 여러 개의 드롭 다운을 바인딩하는 방법은 무엇입니까?
public class RoundViewModel
{
public int RoundId { get; set; }
public string RoundName { get; set; }
public SelectList Teams { get; private set; }
public List<GameViewModel> Games { get; set; }
}
public class GameViewModel
{
public int HomeTeamId { get; set; }
public int AwayTeamId { get; set; }
public DateTime GameTimeGMT { get; set; }
}
이 라운드마다 게임의 변수 숫자가 될 수 있고, 내가 페이지에 넣어 각 드롭 다운에 동일한 Teams
selectList의 결합하기 위해 노력하고있어 :
<% using (Html.BeginForm()) {%>
<fieldset>
<legend>Fields</legend>
<%= Html.HiddenFor(model => model.CodeId) %>
<div class="editor-label">
<%= Html.LabelFor(model => model.RoundNumber) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.RoundNumber) %>
<%= Html.ValidationMessageFor(model => model.RoundNumber) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.RoundName) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.RoundName) %>
<%= Html.ValidationMessageFor(model => model.RoundName) %>
</div>
<%
for (int i = 0; i < Model.Games.Count; i++)
{
%>
<div class="editor-label">
Game:
</div>
<div class="editor-field">
<%= Html.DropDownList("Games[" + i + "].HomeTeamId", Model.Teams, "--No Game--", new { value = Model.Games[i].HomeTeamId })%> VS
<%= Html.DropDownList("Games[" + i + "].AwayTeamId", Model.Teams, "--No Game--", new { value = Model.Games[i].AwayTeamId })%>
<%= Html.TextBox("Games[" + i + "].GameTimeGMT", Model.Games[i].GameTimeGMT, new { Class = "calendar", value = Model.Games[i].GameTimeGMT })%>
</div>
<% } %>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
<% } %>
유사한보기가 잘 작동 만들기 작업을하지만 각 드롭 다운 목록에서 기존 선택을 설정할 수 없습니다. 내가 각 게임에 대한 datetime을 명시 적으로 설정하고 있음을 알 수 있습니다.
new { value = Model.Games[i].HomeTeamId }
행은 <select>
html 요소에 속성을 설정하지만 분명히 작동하지 않습니다. 다른 속성을 설정하고 jQuery를 사용하여 선택한 항목을 설정하는 방법에 대해 생각했지만 기존 코드보다 더 해킹 된 느낌이 들었습니다.
나는 MVC에 상당히 익숙하다. 그래서 나는이 모든 잘못 된 방법을 확실히 이해할 수있다. 아무도 도와 줄 수 있습니까?
굉장, 그건 그랬어. 솔직히 SelectList를 사용하는 이유는 그것이 내가 사용했던 간단한 예제의 대부분을 사용했기 때문입니다. – Damovisa