ASP.Net MVC3 초보자에게 도움이 필요한 문제가 있습니다. (이 글의 맨 아래에있는 질문들도 있습니다.)부분 뷰에서 선택한 값을 기본 뷰의 뷰 모델로 전달
우선 다음과 같은 것이 가장 좋은 방법인지 잘 모르겠습니다. 잘못된 방향으로 가고 있다면 알려주세요. 부분 뷰를 사용하여 드롭 다운 목록 조회를하고 싶습니다. 일부 경우 조회가 여러 위치에서 수행되며 데이터는 Google의 조회 모델에 포함되지 않습니다. 데이터는 응용 프로그램의 데이터베이스 또는 웹 서비스에서 가져온 것일 수 있습니다. 일부 데이터는 시작시로드되고 일부는 양식에서 선택된 다른 값을 기반으로합니다.
우리는 기본보기에서 하위 작업을 호출하고 우리가 얻은 데이터로 부분보기를 반환합니다. 사용자가 선택한 항목을 선택하면 선택한 항목 코드를 기본보기 모델에 저장하는 방법을 알 수 없습니다. PersonalInfo 컨트롤러에서
@model Apps.Model.ViewModels.AVMApplicationInfo
...
<div class="editor-label">
@Html.LabelFor(m => m.VMResidencyWTCS.DisplayState)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.VMResidencyWTCS.DisplayState)
@Html.DropDownListFor(m => m.VMResidencyWTCS.DisplayState, Apps.Model.Helpers.ResidencyStates.StateList)
@Html.ValidationMessageFor(m => m.VMResidencyWTCS.DisplayState)
</div>
@Html.Action("DisplayCounties", "PersonalInfo")
...
: 다음 _DisplayCounties 부분보기에서
[ChildActionOnly]
public ActionResult DisplayCounties()
{
IList<County> countiesDB = _db.Counties
.OrderBy(r => r.CountyDescr)
.Where(r => r.State == "WI"
&& r.Country == "USA")
.ToList();
//Create an instance of the county partial view model
VMCounty countyView = new VMCounty();
//Assign the available counties to the view model
countyView.AvailableCounties = new SelectList(countiesDB, "CountyCd", "CountyDescr");
return PartialView("_DisplayCounties", countyView);
}
:
@model Apps.Model.ViewModels.VMCounty
<div class="editor-label">
@Html.LabelFor(m => m.CountyDescr)
</div>
<div class="editor-field">
@Html.DropDownListFor(x => x.SelectedCountyCd, Model.AvailableCounties)
</div>
가 어떻게 할당 할 우리의 주요 형태에서
우리는 행동에 전화 SelectedCountyCd를 기본 폼보기 모델 (Apps.Model.ViewModels.AVMApplicationInfo)의 필드에 추가합니까? 하위 작업/부분보기가 호출 될 때 문제가 있습니까? 즉, 시작할 때로드되고이 방법을 사용하여 조회를위한 필터로 사용자 선택을 포함 할 수 있습니까? 그렇다면 자식 컨트롤러에 값을 전달할 수있는 방법은 무엇입니까? 뷰백?
나는 당신이 나를 수 있도록 제안 어떻게 생각 룩업을위한 필터로서 사용자 선택을 전달할 수있다. @model Apps.Model.ViewModels.AVMApplicationInfo ... @ Html.Action ("DisplayCounties", "PersonalInfo", 새 { state = Model.State // 또는 속성이 무엇이든간에 이라고 부름) })'그러면 상기 제어기는 다음 싶습니다 '[ChildActionOnly] 공개 ActionResult의 DisplayCounties (문자열 상태) { IList의 countiesDB = _db.Counties .OrderBy (R => r.CountyDescr) 어디에요 (R = > r.State == ** state ** && r.Country == "USA") .ToList(); ' –
user727500
부분 작업을 호출 한 결과로 메인 뷰 내에 부분보기가 표시됩니다. 카운티의 드롭 다운 목록. (현재 작동 중입니다.) 선택한 코드를 주 뷰 모델에 어떻게 다시 할당 할 것인지 생각할 수 있습니까? – user727500