2015-09-24 2 views
1
$.ajax({ 
    type: 'POST', 
    url: '@Url.Action("AccountUpdate", "Customer")', 
    async: false, 
    data: { a:"ed", formCollection: $("#form1").serialize() } 
}); 

контроллера: -Ajax вызовов в контроллер с несколькими параметрами

public void AccountUpdate(string a, FormCollection formCollection) {} 

Вопрос: - В контроллере AccountUpdate я получаю параметр а = "е изды", который прекрасно. Но в объекте FormCollection я получаю formCollection object, а также 'a' объект Почему объект коллекции формы принимает объект 'a'? Он должен быть только formCollection object

+0

Поскольку ваш параметр TypeOf 'FormCollection' который представляет собой сбор всех представленных данных. Замените его 'YourModel formCollection', где' YourModel' - это модель, которую вы использовали в представлении. –

+0

Итак, я изменил параметр своего контроллера на ** public void AccountUpdate (строка a, Customer formCollection) {} ** Без изменений в Ajax, теперь я получаю null в formCollection? –

+0

Также я читаю formCollection, содержащий только те элементы, которые находятся в области формы, «a» не определяется в области формы –

ответ

1

Параметр вашего метода POST является TypeOf FormCollection, который является класс, который содержит все представленные пары ключ/значение.

Измените метод

[HttpPost] 
public void AccountUpdate(string a, Customer model) 

и изменить сценарий, чтобы и ваша модель и дополнительное значение, которое будет представлено и связала в методе

var data = $("#form1").serialize() + '&' + $.param({ 'a': 'ed'}); 

$.ajax({ 
    type: 'POST', 
    url: '@Url.Action("AccountUpdate", "Customer")', 
    data: data 
}); 
+0

Thankyou LeftyX и Stephen Muecke. Stephen Muecke ваш код работает отлично сейчас, –

1
data: $("#form1").serialize() 

- это путь.

Если вы хотите добавить некоторые дополнительные параметры:

$.ajax({ 
    type: 'POST', 
    url: '@Url.Action("AccountUpdate", "Customer")', 
    // async: false, 
    data: "a=ed&" + $("form1").serialize() 
}); 

Таким образом, вы можете связать непосредственно к модели представления:

[HttpPost] 
public ActionResult Index(string a, Customer customer) 
{ 
    ... 
} 
+0

Спасибо Lefty, но объект-клиент теперь null, Это мой элемент в форме

Смежные вопросы