Ajax在mvc上发布

时间:2014-06-17 07:05:10

标签: jquery ajax asp.net-mvc

我试图使用ajax post将数据发布到控制器上它包含一个模型和字符串,字符串值来到控制器,但模型始终为null。任何人都可以帮忙。附上代码

<script>
function save() {
    var st = "Test";
    var source = ({
        'Name': $('#Name').val(),
        'Code': $('#Code').val(),
        'Address': $('#Address').val(),
        'City': $('#City').val(),
        'State': $('#State').val(),
        'Country': $('#Country').val(),
        'Phone': $('#Phone').val(),
        'Fax':$('#Fax').val()
    });
    $.ajax({
        type: "POST",
        url:'@Url.Action("Save", "Hospitals")',
        data: { 'st': st, 'hospital': source }
    });
}

控制器

 public ActionResult Save(string st,Hospital hospital)
    {
        if (ModelState.IsValid)
        {
            db.Hospitals.Add(hospital);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        else
        {
            var dept = db.Departments.ToList();
            ViewBag.department = dept;
        }

        return View(hospital);
    }

2 个答案:

答案 0 :(得分:0)

使用
data: { 'st': st, 'hospital': JSON.stringify(source) }

这会将变量转换为动作方法

中的模型类可解释

答案 1 :(得分:0)

<强> Jquery的

<script>
function save() {
    var cval;
    var str = "";
    $(".chkmaincat:checked").each(function (i) {
        cval = $(this).val();
        str = str + cval + ",";
    });
    alert(str);
    var source =
    {
        'Name': $('#Name').val(),
        'Code': $('#Code').val(),
        'Address': $('#Address').val(),
        'City': +$('#City').val(),
        'State': $('#State').val(),
        'City': $('#City').val(),
        'Country': $('#Country').val(),
        'Phone': $('#Phone').val(),
        'Fax': $('#Fax').val()
    }

    $.ajax({
        type: "POST",
        url: '/Hospitals/Save?st='+str,
        data: source
    });

}

<强>控制器

public ActionResult Save(string st,Hospital hospital)
    {
        if (ModelState.IsValid)
        {
            db.Hospitals.Add(hospital);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        else
        {
            var dept = db.Departments.ToList();
            ViewBag.department = dept;
        }

        return View(hospital);
    }

通过以上操作,我能够获得字符串值以及模态对象。感谢所有帮助。