我正在尝试将序列化表单和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而不是两者。
答案 0 :(得分:1)
您基本上可以将其添加到查询字符串
var assignID = data.Data[0].Id;
$.ajax({
url: url+"?assignmentUID="+assignID ,
data:$("#moAssItemForm").serialize(),
//Existing code
});