У меня есть действие контроллера апи, который принимает JObject какпараметр JObject является недействительным в WebAPI действий
public class ThemeController : ApiController
{
[HttpGet]
public String Get(String siteName, JObject lessVariables)
{
и Ajax вызова
$.ajax({
url: '/api/Theme/Get',
data: { lessVariables: JSON.stringify({'brand-primary': '#222222','brand-success': '#222222','brand-danger': '#222222','brand-info': '#222222','btn-primary-color': '#222222'}), siteName: "UnivOfUtah" }
});
Когда я смотрю на HttpContext.Current.Request. Params ["lessVariables"] дает правильную строку json, но lessVariables - пустой JObject. Есть ли что-то еще, что мне нужно сделать, чтобы настроить Json.Net на это?
Я также попытался это на регулярное действие контроллера
У меня есть действия контроллера, который принимает JObject как
public class ThemeController : Controller
{
[HttpPost]
public String Post(String siteName, JObject lessVariables)
{
и Ajax вызов
$.ajax({
url: '/Theme/Post',
data: { lessVariables: JSON.stringify({'brand-primary': '#222222','brand-success': '#222222','brand-danger': '#222222','brand-info': '#222222','btn-primary-color': '#222222'}), siteName: "UnivOfUtah" }
});
же результат
Это сообщение, кажется, думает иначе http://stackoverflow.com/questions/12730280/posting-a-jobject-to-an-action – DrSammyD
Как я уже сказал, в ссылке, которую вы опубликовали, это корневой объект, который был сжат, что отлично работает. Однако в вопросе выше это значение внутри корневого объекта; по умолчанию структура WebApi не будет анализировать это автоматически, она просто попытается назначить строку lessVariables для JObject, который не будет работать без разбора. – Karhgath
О, я вижу. Спасибо, я буду работать с этим, я думаю. – DrSammyD