Ответил. После моего первого обновления имена переменных не были установлены правильно. Я изменил имя переменной в Контроллере на jsonData, поэтому мой новый заголовок Контроллера выглядит так:
public void SaveEntry(string jsonData)
, а мое действие публикации в JS выглядит так:
$.post("/Journal/SaveEntry", { jsonData: JSONstring });
JSONstring - это «строковый» (или «сериализованный») объект JSON, который я сериализован с помощью плагина JSON , предлагаемого на json.org. Итак:
JSONstring = JSON.stringify(journalEntry); // journalEntry is my JSON object
Итак, имена переменных в $ .post и в методе контроллера должны быть одинаковыми, иначе ничего не будет работать. Хорошо знать. Спасибо за ответы.
Окончательный ответ:
Похоже, что имена переменных не совпадали в его сообщении, как я предлагал в комментарии после разбора проблем с форматированием данных (при условии, что это также было проблемой.
На самом деле, убедитесь, что вы используете правильное ключевое имя, которое ваш сервер код ищет, а также Пример Олека - т.е. если твой код ищите переменные данные, тогда вы нужно использовать данные в качестве ключа. - prodigitalson 6 часов назад
@prodigitalson, это сработало. В имена переменных не совпадали. Будет вы отправляете второй ответ, чтобы я мог принять это? Спасибо. - Мега Мэтт 6 часов назад
Итак, ему нужно было использовать пару ключ / значение и убедиться, что он берет правильную переменную из запроса на стороне сервера.
аргумент данных должен быть парой ключ-значение
$.post("/Journal/SaveEntry", {"JSONString": JSONstring});
Похоже, что тип данных отсутствует. Вы также можете установить contentType на всякий случай. Не могли бы вы попробовать эту версию?
$.ajax({
url: '/Journal/SaveEntry',
type: 'POST',
data: JSONstring,
dataType: 'json',
contentType: 'application/json; charset=utf-8'
});
Ура.