2015-02-22 5 views
0

записывает приложение MVC в выходные дни и решило, что часть приложения должна использовать WebAPI, у меня был следующий javascript, который вызывает простой MVC-контроллер действие

$.post("/App/TestDb", request, function (data) { 
     if (data.status == "SUCCESS") { 
      alert(data.msg); 
      $("#installBtn").removeAttr("disabled"); 
     } else { 
      alert(data.msg); 
     } 
    }, "json"); 

Когда это возвращает значение data представляется в виде объекта JSON. Когда я портировал свой код к WebAPI результата в data была строка (т.е. "{\"status\":\"SUCCESS\",\"msg\":\"Test\"}")

MVC метод контроллера ниже (удалено другим кодом, чтобы упростить пример)

public string TestDb(string appDb, string appUsername, string appPassword, string appHost) 
    { 
     return JsonConvert.SerializeObject(new { status = "SUCCESS", msg = "Test" }); 
    } 

И методы контроллера WebAPI ниже

[HttpPost] 
public string TestDb([FromBody] TestDbDTO testDb) 
    { 
     return JsonConvert.SerializeObject(new { status = "SUCCESS", msg = "Test" }); 
    } 

Как видно из приведенных выше примеров, оба метода возвращают точно такой же результат. Я не уверен, что это то, что я (или не сделал) сделал правильно, поэтому мой вопрос в том, кто-нибудь еще столкнулся с этим?

Приветствия

+0

См http://stackoverflow.com/questions/17097841/return-a-json-string-explicitly-from-asp -сетью-WebAPI –

ответ

0

Попробуйте переписать метод API, как это:

[HttpPost] 
public object TestDb([FromBody] TestDbDTO testDb) 
{ 
    return new { status = "SUCCESS", msg = "Test" }; 
} 
Смежные вопросы