조직 목록 (CalledOrganizationSelectList)이 있는데 그 중 하나가 CalledOrganizationId입니다. 내 ViewModel에서 둘 다 설정하지만 MVC/면도기가 드롭 다운을 올바르게 렌더링하지 않습니다 (즉, 드롭 다운에서 올바른 항목에 대해 selected = "selected"속성을 설정하지 않음).ASP .Net MVC 3 Html.DropDown이 변수에 바인딩되지 않았습니다.
덜 비합리적인 해결 방법이 있습니다. 내 ViewModel에 새 멤버를 추가하고 그 드롭 다운을 바인딩했습니다. 이것은 잘 작동합니다. 내보기에서
var vm = new CallViewModel();
var calledOrganizationSelectList = new List<object>();
calledOrganizationSelectList.Add(new {Text="",Id=""});
calledOrganizationSelectList.AddRange(
db.MyOrganizations.OrderBy(x=>x.Name)
.Select(x => new { Text = x.Name, Id = x.Id.ToString()}).ToList());
var sl = new SelectList(calledOrganizationSelectList, "Id", "Text",
vm.CalledOrganizationId);
vm.CalledOrganizationSelectList = sl;
return View(vm);
: 내 렌더링 된 페이지의 소스에서
<div>CalledOrganizationId = @Model.CalledOrganizationId :
select list contains
<ul>@foreach (var itm in Model.CalledOrganizationSelectList)
{<li>Value: @itm.Value Text: @itm.Text Is Selected: @itm.Selected</li>}
</ul>
</div>
@Html.DropDownList("CalledOrganizationId", Model.CalledOrganizationSelectList)
:
<div>CalledOrganizationId = 38 : select list contains
<ul>
<li>Value: Text: Is Selected: False</li>
<li>Value: 37 Text: rrr Is Selected: False</li>
<li>Value: 38 Text: sss1 Is Selected: True</li>
</ul>
</div>
<select data-val="true" data-val-number="The field CalledOrganizationId must be a number." id="CalledOrganizationId" name="CalledOrganizationId">
<option selected="selected" value=""></option>
<option value="37">rrr</option>
<option value="38">sss1</option> </select>
내 컨트롤러에서
public class CallViewModel{
public int? CalledOrganizationId { get; set; }
public SelectList CalledOrganizationSelectList { get; set; }}
... 지금이 작동을 중지 때까지
저는 처음으로 잡아 당긴 후에 작업했습니다. 내 머리카락에 남아있는 것을 밖으로 내 ViewModel에 새로운 변수를 도입함으로써, 괜찮아 보인다.
내가 있었다 문제를. 위의 답변이 도움이되지 않으면 [this] (http://stackoverflow.com/questions/9832905/dropdownlistfor-does-not-select-selected-value)를 살펴보십시오. – Dmitry
매우 신속하고 도움이되는 답변에 감사드립니다. 아직 작동하지 않지만 적어도 나는 미치지 않는다는 것을 알고 있습니다. 지금은 페이지가로드 된 후 드롭 다운을 설정하기 위해 몇 가지 jquery를 추가했습니다.이 모양은 ... – ajd