2015-08-27 4 views
0

Рассмотрят функциюВозвращающихся разместить данные в формате JSON

public JsonResult poststuff() 
    { 
     var form = Request.Form; 
     return new JsonResult() { Data = form }; 
    } 

рассматривает представленные данные (JSON)

{ 
     name: "John Doe", 
     age: "50" 
    } 

Это мой вопрос

Есть ли способ вернуть пост данные как JSON? Без необходимости разделить данные и вставить их в объект типа?

Я чувствую, что я травляю сеть для ответа, но не смог найти ее ... и знаю, что я обращаюсь к вам.

returndata будет предпочитаемым как следующее:

{ данных: { имени: "Джон Доу", возраста: 50 } } или даже лучше { имя: "John Doe", возраст: 50 }

Можно ли сделать это простым способом? Я знаю, что это я PHP, но я никогда не удалось найти ответ в C# .NET

В качестве эталона желаемого результата может быть создан в PHP так же легко, как

$input_data = json_decode(trim(file_get_contents('php://input')), true); 
echo json_encode($input_data); 
+0

Это не те данные, что вы опубликовали? Зачем вам это нужно? –

+0

Вы используете ASP.Net MVC или веб-API? – Carlos487

+0

@ Carlos487 JsonResult специфичен для Mvc, не так ли? –

ответ

0

Если вы используете форма размещать данные, то вы можете использовать [FormCollection][1] класс, как показано ниже:

[HttpPost] 
public ActionResult PostStuff(FormCollection formCollection) 
{ 
    Dictionary<string, string> data = new Dictionary<string, string>(); 

    //If data is POSTed as a form 
    foreach (var key in formCollection.AllKeys) 
    { 
     var value = formCollection[key]; 
     data.Add(key, value); 
    } 

    return Json(data, "application/json", JsonRequestBehavior.AllowGet); 
} 

Здесь мы просто пробегаем по коллекции посланной из формы и добавить его в словарь. Затем этот словарь передается в JsonResult.

Смежные вопросы