имеем метод в WEB API.
Code: Select all
public void CreatePerson (Person person);
Параметр метода - это объект класса Person
Code: Select all
class Person
{
public string Name {get;set;}
public DateTime CreateDate {get;set;}
}
Code: Select all
public void CreatePerson (Person person);
Code: Select all
class Person
{
public string Name {get;set;}
public DateTime CreateDate {get;set;}
}
Этот хедер проставлен.olegy wrote: 20 Apr 2017 04:34 В Fiddler посмотрите raw request.
Обычно не проставлен request header Content-Type - должен быть text/xml или application/xml
Вы уверены что это может быть причиной?shadow7256 wrote: 20 Apr 2017 12:08
Этот хедер проставлен.
Но причина того, что параметр = null может быть другой. Допустим пользователь внутри XML передал дату в неправильном формате.
Тогда варианта два.shadow7256 wrote: 20 Apr 2017 12:08
Этот хедер проставлен.
Но причина того, что параметр = null может быть другой. Допустим пользователь внутри XML передал дату в неправильном формате. Задача собственно стоит в том, чтобы внутри моего метода (ну или в любом месте кода моего) узнать причину этого, что пошло не так. Чтобы вернуть клиенту ответку Bad request но при этом указать ему, что он сделал не так.
интересно.. то есть на входе получаем чисто XML в виде строки. Затем сами внутри того же try/catch пытаемся создать объекта класса Person на его основе.. и тут может вывалиться хахашечкаolegy wrote: 20 Apr 2017 16:03 Вариант два - смените подпись метода на
public void CreatePerson ([FromBody] string whatever);
и ручками deserialize строку в объект. Глядишь, ошибки и повываливаются
Мужики это что за такие древние технологии вы тут обсуждаете?shadow7256 wrote: 21 Apr 2017 00:48интересно.. то есть на входе получаем чисто XML в виде строки. Затем сами внутри того же try/catch пытаемся создать объекта класса Person на его основе.. и тут может вывалиться хахашечкаolegy wrote: 20 Apr 2017 16:03 Вариант два - смените подпись метода на
public void CreatePerson ([FromBody] string whatever);
и ручками deserialize строку в объект. Глядишь, ошибки и повываливаются
Попробую.![]()
где ставить брэк-поинт, чтобы узнать почему model is not properly populated?valchkou wrote: 24 Apr 2017 18:38Мужики это что за такие древние технологии вы тут обсуждаете?shadow7256 wrote: 21 Apr 2017 00:48интересно.. то есть на входе получаем чисто XML в виде строки. Затем сами внутри того же try/catch пытаемся создать объекта класса Person на его основе.. и тут может вывалиться хахашечкаolegy wrote: 20 Apr 2017 16:03 Вариант два - смените подпись метода на
public void CreatePerson ([FromBody] string whatever);
и ручками deserialize строку в объект. Глядишь, ошибки и повываливаются
Попробую.![]()
почему нельзя просто дебагером пройтись и посмотреть?
так что за язык/технология?ie wrote: 24 Apr 2017 18:45где ставить брэк-поинт, чтобы узнать почему model is not properly populated?valchkou wrote: 24 Apr 2017 18:38Мужики это что за такие древние технологии вы тут обсуждаете?shadow7256 wrote: 21 Apr 2017 00:48интересно.. то есть на входе получаем чисто XML в виде строки. Затем сами внутри того же try/catch пытаемся создать объекта класса Person на его основе.. и тут может вывалиться хахашечкаolegy wrote: 20 Apr 2017 16:03 Вариант два - смените подпись метода на
public void CreatePerson ([FromBody] string whatever);
и ручками deserialize строку в объект. Глядишь, ошибки и повываливаются
Попробую.![]()
почему нельзя просто дебагером пройтись и посмотреть?
public ActionResult Index(SuperModel model)
{
ProcessModel(model);
return View();
}
похоже .net..имеем метод в WEB API.
when we hit return View();valchkou wrote: 24 Apr 2017 18:50 в яве/idea/eclipse я бы поставил на return View();
и далее опустился бы по стэку до того места где эта модель заполняется.
там где то обязан быть конвертер/mapper
Да. Но если делать так то как минимум один минус есть - документация сервиса не будет работать.shadow7256 wrote: 21 Apr 2017 00:48интересно.. то есть на входе получаем чисто XML в виде строки. Затем сами внутри того же try/catch пытаемся создать объекта класса Person на его основе.. и тут может вывалиться хахашечкаolegy wrote: 20 Apr 2017 16:03 Вариант два - смените подпись метода на
public void CreatePerson ([FromBody] string whatever);
и ручками deserialize строку в объект. Глядишь, ошибки и повываливаются
Попробую.![]()
да, дебагер next step/step out выйдет из метода Index() во внешний метод, который вызвал Index() и так далее.ie wrote: 24 Apr 2017 18:58похоже .net..имеем метод в WEB API.
when we hit return View();valchkou wrote: 24 Apr 2017 18:50 в яве/idea/eclipse я бы поставил на return View();
и далее опустился бы по стэку до того места где эта модель заполняется.
там где то обязан быть конвертер/mapper
the initialization of the model already complete.. как вы отмотаете назад?
eclipse позволяет такое?
Это удобнее оформить как custom model binder.shadow7256 wrote: 21 Apr 2017 00:48 интересно.. то есть на входе получаем чисто XML в виде строки. Затем сами внутри того же try/catch пытаемся создать объекта класса Person на его основе.. и тут может вывалиться хахашечка![]()
Хм. не уверен про какую документацию сервиса ты говоришьkatit wrote: 24 Apr 2017 19:13Да. Но если делать так то как минимум один минус есть - документация сервиса не будет работать.shadow7256 wrote: 21 Apr 2017 00:48интересно.. то есть на входе получаем чисто XML в виде строки. Затем сами внутри того же try/catch пытаемся создать объекта класса Person на его основе.. и тут может вывалиться хахашечкаolegy wrote: 20 Apr 2017 16:03 Вариант два - смените подпись метода на
public void CreatePerson ([FromBody] string whatever);
и ручками deserialize строку в объект. Глядишь, ошибки и повываливаются
Попробую.![]()
не уверен что Visual Studio позволяет такое... и да. Технология .NET.valchkou wrote: 24 Apr 2017 19:39да, дебагер next step/step out выйдет из метода Index() во внешний метод, который вызвал Index() и так далее.ie wrote: 24 Apr 2017 18:58похоже .net..имеем метод в WEB API.
when we hit return View();valchkou wrote: 24 Apr 2017 18:50 в яве/idea/eclipse я бы поставил на return View();
и далее опустился бы по стэку до того места где эта модель заполняется.
там где то обязан быть конвертер/mapper
the initialization of the model already complete.. как вы отмотаете назад?
eclipse позволяет такое?