2016-04-03 4 views
0

Мой asp.net Web API является самостоятельным приложением, проблема лицо передать JSON са метод апи parameter.My находится нижекак JSON передача параметра в asp.net метод действия Web API

[Route("api/UniqueUser/{userInfo}")] 
     public HttpResponseMessage GetUniqueUserByEmail(string userInfo) 
{ 
} 

В выше параметра USERINFO является josn как сильфоном

{"UserInfo":[{"Id":1,"UserName":"Jxj Bdn","Email":"[email protected]"}]} 

Когда я кладу это в моем браузере URL показать мне сильфон ошибка

enter image description here

ответ

1

Данные JSON должны быть отправлены в тело запроса для его десериализации, а не в строке запроса/URL-адресе браузера.

Кроме того, 'string userInfo' не будет работать так, как вы ожидаете. Вы можете определить класс, который представляет параметры вашего объекта JSON, и он будет работать правильно.

Это будет работать, например:

public class UserInfo 
{ 
    public int Id { get; set;} 

    public string UserName { get; set;} 

    public string Email { get; set;} 
} 

и изменить эту строку:

public HttpResponseMessage GetUniqueUserByEmail(UserInfo userInfo) 

Edit:

Если это URL, что кто-то должен пройти в использовании маршрутизации:

https://site/api/UniqueUser/1/Jxj Bdn/[email protected] 

И в контроллере:

[Route("api/UniqueUser/{id}/{userName}/{email}")] 
public HttpResponseMessage GetUniqueUserByEmail(int id, string userName, string email) 

Посмотрите сюда, чтобы посмотреть, как сделать это с помощью традиционных параметров строки запроса также:

http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

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

Не можете ли вы создать простую форму HTML для ваших клиентов?

+0

как я говорю, что это приложение-сервис, поэтому мне нужно дать пользователю только URL-адрес больше ничего, в этой ситуации я делаю. – shamim

+0

Я обновлю свой ответ –

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