加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读