Прежде всего вы, похоже, отправляете запрос JSON (JSON.stringify(data)
). Это не поддерживается "из коробки" в ASP.NET MVC 2. В ASP.NET MVC 3 было введено JsonValueProviderFactory
. Вы можете взглянуть на следующую статью , которая более подробно объясняет запросы JSON в ASP.NET MVC.
Также каждый раз, когда вы хотите отправить JSON-запрос, вы должны установить правильный тип контента, используя параметр contentType
:
data: JSON.stringify(data),
contentType: 'application/json; charset=utf-8',
и последнее, но не менее важное: я бы порекомендовал вам использовать модели представлений вместо того, чтобы полагаться на некоторые слабо типизированные структуры, такие как FormCollection, в действиях вашего контроллера и на необходимость написания кода.
UPDATE:
FormCollection
- коллекция пар ключ / значение. Поэтому, если вы хотите использовать его (несмотря на мою рекомендацию против него), вам не следует использовать запрос JSON. Вы должны использовать обычный запрос значения ключа. Поэтому удалите JSON.stringify из своего AJAX-запроса и также удалите параметр contentType: 'application / json'. В действительности нет смысла использовать коллекцию пар ключ / значение со слабым типом для объектов JSON.