#jquery #asp.net-mvc #json
#jquery #asp.net-mvc #json
Вопрос:
var post = { "ID":1 };
var step = [1,2,3,4,5];
post.step = step;
console.log(post)
$.ajax({
url:'rss/test',
type:'POST',
data:post
})
—
public JsonResult Test(int ID, IEnumerable<string> step)
{
return Json(true);
}
Я хочу опубликовать их с помощью JSON, как я могу это сделать? Когда я попытался это сделать, я обнаружил, что это не сработало. Шаг не выполнен (или post)
обновление: после установки его в
var post = {
"ID":1,
step:[{'Name':'first'},{'Name':'second'}]
}
$.post("/rss/test",post,function(){
});
public JsonResult Test(int ID, IEnumerable<string> step)
{
return Json(true);
}
я чувствую, что это работа, но я получил результат
step
Count = 2
[0]: null
[1]: null
в немедленном окне.
итак, я надеюсь, что я иду в правильном направлении, но обе вещи равны нулю. теперь кто-нибудь может помочь мне заставить их работать.
Спасибо
Ответ №1:
Типы данных на сервере не соответствуют объекту, который вы отправляете от своего клиента. Попробуйте это.
public class Post
{
public int ID { get; set; }
public IEnumerable<string> Step { get; set; }
}
Затем в вашем контроллере
[HttpPost]
public JsonResult Test(Post post)
{
}
Вы должны проверить это, хотя и не компилировали его.
Чтобы опубликовать данные, вы должны правильно установить тип данных:
$.ajax({
url:'rss/test',
type:'POST',
dataType: "json",
contentType: "application/json",
data:post
})
Комментарии:
1. В качестве объекта JS передаются свойства, привязанные к параметрам действия. Ваш подход тоже сработает 🙂
Ответ №2:
Попробуйте добавить traditional
параметр
$.ajax({
url:'rss/test',
type:'POST',
data:post,
traditional: true
})