@Sneiksus

Какой должен быть принимающий тип в контролеере?

из js скрипта отправляется post запрос
$.post("/Home/Add" , {"A":"a" , "B":"b"});
в asp.net контроллер

[HttpPost]
   public void Add(/*.....*/) {}


Какой должен быть тип принимающего параметра в функции Add, чтобы принять массив из джаваскрипта?
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
@ivanresh
Он должен представлять из себя класс с такими же свойствами, какие вы отправляете, и нужно добавить аттрибут [FromBody]:

public class Word
{
public string A { get; set; }
public string B { get; set; }
}

[HttpPost]
public void Add([FromBody]Word word)
{

}


Отправить объект посложнее:
$.post("/Home/Add" , {"A": { "Prop" : 1 } , "B":"b"});


public class TestClass
{
      public int Prop { get; set; }
}

public class Word
{
public TestClass A{ get; set; }
public string B { get; set; }
}

[HttpPost]
public void Add([FromBody]Word word)
{

}


Массив:
$.post("/Home/Add" , [ { "A" : "a" } , { "A" : "b" } ]);


public class Word
{
       public string A{ get; set; }
}

[HttpPost]
public void Add([FromBody]IEnumerable<Word> words)
{

}


Использовать различные от имени свойств наименования:
$.post("/Home/Add" , [ { "OtherName" : "a" } , { "OtherName" : "b" } ]);


public class Word
{
       [JsonProperty("OtherName")]
       public string A{ get; set; }
}

[HttpPost]
public void Add([FromBody]IEnumerable<Word> words)
{

}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы