여기에 설명 된 방법과 마찬가지로 드롭 다운 목록 선택시 부분 뷰를로드합니다 : Load partial view depending on dropdown selection in MVC3. 내 코드는 다음과 같습니다부분보기가 ASP NET에서 변경되면 양식을 업데이트 된 값을 제출하는 방법?
보기 :
@....ParentModel
@using (Html.BeginForm("Method", "Controller", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div id="info">
<div id="info-selection">
@Html.LabelFor(m => m.SavedInfo)
@Html.DropDownListFor(m => m.SavedInfo , infoListItems, new { @id = "info-dropdown" })
</div>
<div id="info-describtion">
@Html.EditorFor(m => m.ChildModel)
</div>
</div>
<input type="submit" id="confirm_btn" value="Go!" />
}
<script>
$('#info-dropdown').change(function() {
var id = $(this).val();
$.get('/Cart/SelectInfo/' + id, function (data) {
$('#info-describtion').html(data);
//$('#info-describtion').fadeIn('fast');
});
});
</script>
PartialView :
@model ...Info
@{
List<SelectListItem> listMetroItems = new List<SelectListItem>();
listMetroItems.Add(new SelectListItem
{
Text = "no metro",
Value = "NoMetroAvailable",
Selected = true
});
}
<ul id="info-left">
<li>
@Html.LabelFor(m => m.Undegraund)
@Html.DropDownListFor(m => m.Undegraund, listMetroItems)
</li>
<li>
@Html.LabelFor(m => m.House)
@Html.TextBoxFor(m => m.House)
</li>
<li>
@Html.LabelFor(m => m.Flat)
@Html.TextBoxFor(m => m.Flat)
</li>
<li>
@Html.LabelFor(m => m.Floor)
@Html.TextBoxFor(m => m.Floor)
</li>
</ul>
<ul id="info-right">
<li>
@Html.LabelFor(m => m.Street)
@Html.TextBoxFor(m => m.Street)
</li>
<li>
@Html.LabelFor(m => m.Building)
@Html.TextBoxFor(m => m.Building)
</li>
<li>
@Html.LabelFor(m => m.Porch)
@Html.TextBoxFor(m => m.Porch)
</li>
<li>
@Html.LabelFor(m => m.IntercomCode)
@Html.TextBoxFor(m => m.IntercomCode)
</li>
</ul>
컨트롤러 : 내가 얻을 수
public ActionResult SelectInfo(int id)
{
Info partialViewModel = new Info(id);
return PartialView("~/Views/Shared/EditorTemplates/InfoModel.cshtml", partialViewModel);
}
한 가지가 제대로 작동하려면 : 부분 볼 수있는대로로드하는보기는 폼의 일부입니다. 드롭 다운의 양식 내용 업데이트가 완벽하게 변경됩니다. 그러나 양식의 제출 단추를 클릭하면 SelectInfo() 메서드로 대체 된 것이 아닌 더 이상 사용되지 않는 데이터가 게시됩니다! 나는 전체 뷰의 ParentModel이 부분 뷰 업데이트를 할 때 업데이트되지 않는다는 사실 때문에 생각합니다. 이 문제를 해결하기위한 선택은 무엇입니까?
부분보기는 무엇입니까? – PaulBinder
폴 루빈 der, 질문에 – Starter
을 추가하면 parentmodel, info model 및 child model도 제공 할 수 있습니까? – PaulBinder