Ответ 1
Сериализовать JSON с помощью script...
Хотя этот ответ использует Ajax, вместо этого вы можете написать сериализованную строку на вход [type = hidden] в вашей форме
У меня очень сложная форма на веб-странице. Пользователь фактически создает сложный объект. Пользовательский интерфейс обрабатывается с помощью jQuery (показывая, скрывая разделы, дублируя и удаляя подформы,...).
Просто размещение формы при представлении пользователя, хотя и возможно, не кажется лучшим решением: было бы сложно составить уникальные имена для полей (могут быть массивы объектов) и декодировать весь материал на стороне сервера.
Я предполагаю, что лучше разместить JSON-представление объекта. Как мне это сделать?
Я не пытаюсь сделать ajax-вызов. Я хочу отправить форму, но используя JSON вместо обычной формы приложения /x -www-form-urlencoded.
FWIW, бэкэнд - это ASP.NET MVC.
ТИА,
Сериализовать JSON с помощью script...
Хотя этот ответ использует Ajax, вместо этого вы можете написать сериализованную строку на вход [type = hidden] в вашей форме
Вы можете попробовать следующее:
$("form").submit(function()
{
//Checking data here:
$("input").each(function(i, obj)
{
});
alert($(this).serialize());
alert(toJSON($(this).serializeArray()));
//return false;
});
function toJSON(obj)
{
var json = '({';
$.each(obj, function(k,v){
var q = typeof v == 'string' ? ~v.indexOf("'") ? '"' : "'" : '';
if (typeof v == 'object')
v = toJSON(v).slice(0,-1).substr(1);
json+= k + ':'+ q + v + q + ',';
});
return json.slice(0,-1)+'})';
};
Моя скрипка: http://jsfiddle.net/Achilleterzo/6Zj6n/
Если вы используете jquery, вы можете изучить эти две функции .serialize() и .serializeArray()
Эти функции помогут вам получить данные формы, без необходимости ручного ввода.
Используйте плагин формы jquery, чтобы отправить форму через AJAX.
Для повторяющихся имен полей путь по умолчанию обычно добавляет []
к имени - большинство серверных языков, а затем создает массив, содержащий все представленные значения. В зависимости от языка это также может произойти без []
, но я уверен, что MSDN поможет вам с тех пор, как вы используете ASP.NET для своего бэкэнд.