如何正确地将模型与ajax绑定

时间:2015-12-06 14:21:51

标签: c# json asp.net-mvc asp.net-ajax

我对使用ajax传递值有疑问。我做过类似的事情:

 $('#zlozZamowienie').click(function () {
    var wycieczki = [];
    $("input[name=Id_wycieczki]:checked").each(function () {
        var id = $(this).attr('id');
        wycieczki.push(id);
    });


    var productModel = {

        Id_oferty: $("#Id_oferty").val(),
        Nazwa_oferty: $("#Nazwa_oferty").val(),
        Data_od: $("#Data_od").val(),
        Data_do: $("#Data_do").val(),
        Cena_za_miejsce: $("#Cena_za_miejsce").val(),
        iloscDni: $("#iloscDni").val(),
        SelectedKwaterunek: $("input:radio[name=SelectedKwaterunek]:checked").val(),
        IdWycieczek: wycieczki


    };

    $.ajax({
        type: "POST",
        url: '@Url.Action("Szczegoly", "Oferta")',
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify({ 'skomponowanaOferta': productModel}),

        dataType: "json",
        success: function () {
            alert('Success');
        },
        error: function (xhr) {
            alert(xhr.error);
        }

    });
    return false;




});

Szczegoly控制器

  [HttpPost]
    public ActionResult Szczegoly(SzczegolyOfertyViewModel skomponowanaOferta)
    {

        if (ModelState.IsValid) { 
           ...
            };
            TempData["Szczegoly"] = szczegoly; 
            return RedirectToAction("ZlozZamowienie", "Zamowienia");
        }

Zamowienia控制器

   public ActionResult ZlozZamowienie()
    {

        var skomponowanaOferta = (SzczegolyOfertyViewModel) TempData["Szczegoly"]; 
        SzczegolyOfertyViewModel podsumowanie = new SzczegolyOfertyViewModel();

        if (SprawdzWycieczki(skomponowanaOferta.IdWycieczek))
        {
           ...

           };

            return View(podsumowanie);
        }

哪个正确传递数据但由于这个返回false语句我的按钮不会将我重定向到任何地方。当我将此返回更改为true或仅删除它时,此ajax传递null。我做错了什么?

编辑:我有像这样的ajax错误: enter image description here

1 个答案:

答案 0 :(得分:0)

好的,我在这里找到答案 RedirectToAction not working after successful jquery ajax post?

然后我将它添加到我的ajax:

location.href="url"
像@vinayakj说的那样