尝试将序列化的表单和编号发布到ASP.NET / MVC中的控制器

时间:2016-02-19 15:36:05

标签: jquery ajax asp.net-mvc

我正在尝试将序列化表单和ID发布到我的控制器。

控制器方法:

 [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult MoveOrderItem_Create_From_List([DataSourceRequest] DataSourceRequest request, List<MoveOrderItemDTO> moiToCreateList, long assignmentUID)
        {
            if (moiToCreateList != null && ModelState.IsValid)
        {

            IUser user = LoggedInUserProvider.getUser();
            //Get the contact Id that is editing

            foreach (MoveOrderItemDTO item in moiToCreateList)
            {
                item.EditContactId = user.ContactId;
            }


            moveOrderViewModel.upsertOrderItemsTransaction(moiToCreateList.Cast<IMoveOrderItem>().ToList());


        }

        return Json(new[] { moiToCreateList }.ToDataSourceResult(request, ModelState));
    }

我的javascript:

function MoveOrderPost() {

var moAss = $("#moAssForm").serialize()

$.post("MoveOrder/MoveOrderAssignement_Create", moAss,
function (data)
{

           if (data.Errors === null) {
        var assignID = data.Data[0].Id;

        var moAssItemList = $("#moAssItemForm").serialize()

        var url = "MoveOrderItem/MoveOrderItem_Create_From_List";
        valuesToPost = moAssItemList,"assignmentUID:" + assignID ;
               debugger;
        $.ajax({
            url: url,
            type: "POST",
            data: valuesToPost,
            success: function (data)
            {
                //data - response from server
                if (data.Errors === null)
                {


                }
                else
                {
                    //TODO - Add error handling
                }
            },

        });



    }
    else
    {
        //TODO - Add error handling
    }


});

如果我取出控制器中的AssignmentUID参数并进行制作,

data: moAssItemList

,列表通过。

我也试过......

valuesToPost = {   "moiToCreateList": +moAssItemList, "assignmentUID": +assignID }

在这种情况下,assignUID会传递给控制器​​,但列表为空。我确信这可能是一种语法问题,但我无法弄清楚我错过了什么。我查看了许多其他帖子并尝试了指定的语法,但我似乎只能获取列表或UID而不是两者。

1 个答案:

答案 0 :(得分:1)

您基本上可以将其添加到查询字符串

var assignID = data.Data[0].Id; 
$.ajax({
          url: url+"?assignmentUID="+assignID ,
          data:$("#moAssItemForm").serialize(),
          //Existing code    
});