我正在使用ASP.NET MVC-5應用程序。我在Razor partial View中獲得了表單,並且它需要多個模型,所以我使用ViewModel;把所有的類(模型),參考在如下從視圖使用viewModel類將數據發佈到控制器-ASP.NET MVC5
public class QualificationViewModel
{
public Qualification _Qualification;
//public Subject _Subject;
//public FeeScheme _FeeScheme;
}
現在的時間感,我使用僅資質模型只是爲了測試我的代碼,但我無法從視圖中的數據發送到控制器的方法。我在控制器的方法獲得在調試空值
[HttpGet]
public ActionResult CreateNewQualification()
{
return PartialView("PartialQualification_Create");
}
[HttpPost]
public ActionResult CreateNewQualification(QualificationViewModel newQualificationData)
{
try
{
if (ModelState.IsValid)
{
//code here...
}
}
catch (DataException ex)
{
ModelState.AddModelError("", "Unable To Create New Qualification!" + ex);
}
return RedirectToAction("QualificationHome");
}
我使用jQuery的Ajax方法來發布數據,以類似的方式我已經成功地發送了一個模型類數據的....
function submit_createNewQualification()
{
alert(JSON.stringify($("#NewQualificationForm").serializeObject()));
$.ajax({
type: "Post",
url: "/Qualification/CreateNewQualification",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ newQualificationData: $("#NewQualificationForm").serializeObject() }),
success: function (data) {
if (data == true) {
window.location = "/Qualification/QualificationHome";
}
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
}
和我有以下考慮形式...
@model DatabaseLayer.ViewModels.QualificationViewModel
@using (Html.BeginForm("CreateNewQualification", "Qualification", FormMethod.Post, new { id = "NewQualificationForm" }))
{
@Html.AntiForgeryToken()
<div class="form-group">
@Html.LabelFor(model => model._Qualification.QualificationTitle, new { @class = "control-label col-md-3" })
<div class="col-md-6">
@Html.EditorFor(model => model._Qualification.QualificationTitle)
@Html.ValidationMessageFor(model => model._Qualification.QualificationTitle)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model._Qualification.Active, new { @class = "control-label col-md-3" })
<div class="col-md-6 custom-checkBox-block-1">
@Html.EditorFor(model => model._Qualification.Active)
@Html.ValidationMessageFor(model => model._Qualification.Active)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create Qualification" onclick="submit_createNewQualification()" class="btn btn-default" />
</div>
</div>
}
許多感謝...
你是明星馬特...它的作品..非常感謝 – toxic