使用多个参数调用我的控制器,包括序列化表单

时间:2016-05-12 21:29:51

标签: jquery ajax asp.net-mvc

如何使用3个参数和序列化表单调用控制器的操作方法?

以下是我的内容,但'SearchCriteria sc'参数为null。

public JsonResult CreateDynamicCollection(int[] arrIds, string collectionName, int parentCollectionId, SearchCriteria sc)
{
  // sc is null
}

public class SearchCriteria
{

    public string City { get; set; }

    public string PostalCode { get; set; }

    // other fields here left out 
}

 var model = {};
 model.arrIds = arrIds;
 model.parentCollectionId = parentId;
 model.collectionName = $createCollectionName.val();
 var form = $('#formAdvSearch')[0];
 model.form = $(form).serialize();

 $.post(controller, model, function(response) {
     if (response.error == false) {
       //do some stuff
     }
   })
   .fail(function() {

   })
   .always(function() {

   });

1 个答案:

答案 0 :(得分:0)

这是我做的,

我传入了一个更复杂的序列化数据结构。



var form = $('#formAdvSearch')[0];
var serializedForm = $(form).serializeArray();
serializedForm.push({
  name: 'arrIds',
  value: arrIds
});
serializedForm.push({
  name: 'parentCollectionId',
  value: parentId
});
serializedForm.push({
  name: 'collectionName',
  value: $createCollectionName.val()
});
model = serializedForm;




然后我让我的新对象接受模型继承旧对象,新项目被放置在新的对象中