简体   繁体   English

如何正确地与Ajax绑定模型

[英]How to binding model with ajax correctly

I have question about passing values with ajax. 我对使用ajax传递值有疑问。 I have done something like this: 我做了这样的事情:

 $('#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 controller Szczegoly控制器

  [HttpPost]
    public ActionResult Szczegoly(SzczegolyOfertyViewModel skomponowanaOferta)
    {

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

Zamowienia Controller Zamowienia控制器

   public ActionResult ZlozZamowienie()
    {

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

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

           };

            return View(podsumowanie);
        }

Which is passing data correctly but because of this return false statement my button do not redirect me anywhere. 哪个可以正确传递数据,但是由于此return false语句,我的按钮无法将我重定向到任何地方。 When I change this return to true or just delete it, this ajax pass nulls. 当我将此返回值更改为true或将其删除时,此ajax传递为null。 What am I doing wrong? 我究竟做错了什么?

EDIT: I have error from ajax like this: 编辑:我从像这样的ajax错误: 在此处输入图片说明

Ok I found answer here RedirectToAction not working after successful jquery ajax post? 确定我找到答案这里RedirectToAction成功jquery ajax发布后不工作吗?

and then I add this to my ajax: 然后将其添加到我的ajax:

location.href="url"

like as @vinayakj said 就像@vinayakj所说的

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM