c# – 使用viewModel类-ASP.NET MVC5从视图向控制器发布数据
发布时间:2020-12-16 02:00:10 所属栏目:百科 来源:网络整理
导读:我正在使用ASP.NET MVC-5应用程序.我在Razor局部视图中得到了表单,它需要多个模型,所以我使用ViewModel;将所有类(模型)引用如下所示 public class QualificationViewModel{ public Qualification _Qualification; //public Subject _Subject; //public FeeSc
我正在使用ASP.NET MVC-5应用程序.我在Razor局部视图中得到了表单,它需要多个模型,所以我使用ViewModel;将所有类(模型)引用如下所示
public class QualificationViewModel { public Qualification _Qualification; //public Subject _Subject; //public FeeScheme _FeeScheme; } 现在暂时我只使用资格模型来测试我的代码,但我无法将数据从视图发送到控制器方法.我在控制器方法的调试中得到null值 [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> } 非常感谢… 解决方法
试试这个
public class QualificationViewModel { public Qualification _Qualification {get; set;} //public Subject _Subject; //public FeeScheme _FeeScheme; } [HttpGet] public ActionResult CreateNewQualification() { var Model = new QualificationViewModel(); return PartialView("PartialQualification_Create",model); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |