我有一個主View PersonEdit.cshtml綁定到Main類PersonEdit - 它在內部是許多模型的容器類,如BasicInfo,EductaionalInfo,EmploymentInfo等。 保存所有關於點擊PersonEdit.cshtml提交的信息。該視圖由許多部分視圖組成,這些視圖由不同的由AJAX異步調用的Action方法加載。 我面臨的問題是模型綁定不會發生在單擊PersonEdit.cshtml上的提交上,因爲部分視圖中的名稱與模型綁定的預期不同。模型綁定使用包含在主視圖中的強類型的很多部分視圖
類結構
public class PersonEdit
{
BasicInfo basicInfo { get; set; }
EducationalInfo eduInfo { get; set; }
EmploymentInfo empInfo { get; set; }
}
請給我建議,我怎麼能做到模型在這種情況下綁定。
我加載的局部視圖這樣的:
//Basic Info
$(document).ready(function() {
DisplayBasicInfo();
});
function DisplayBasicInfo() {
var $MainContent = $("#divBasicInfo");
var resourceURL = "/Home/Home/GetBasicInfo";
var personID = $("#PersonEdit_PersonID").val();
personID = 0;
$MainContent.css("text-align", "center");
$.ajax({
cache: false,
type: "GET",
async: true,
url: resourceURL,
dataType: "text/html",
data: { personID: personID },
success: function (data) {
$MainContent.html(data);
$.validator.unobtrusive.parse($("#divBasicInfo"));
},
error: function (xhr) {
$('#divBasicInfo').show().html("Unexpected Error in basic Info- Please contact administrator!");
$("#divBasicInfo").dialog({
modal: true,
width: 'auto',
opacity: 0.7,
height: 'auto',
position: 'center',
title: 'Warning',
buttons: {
'OK': function() { $(this).dialog("close"); }
}
});
}
});
}
好的,但我沒有使用@ Html.partialView,而是部分視圖通過不同的控制器操作方法呈現。 – 2012-02-22 10:32:34
好吧,在部分視圖中嘗試@ {Html.ViewData.TemplateInfo.HtmlFieldPrefix = ViewBag.PropertyPrefix}並在主視圖中設置ViewBag.PropertyPrefix =「basicInfo」 – Manas 2012-02-22 10:36:13
謝謝。有效。 – 2012-02-22 11:17:53