Quiero pasar varios parámetros en mi Solicitud Get utilizando el Protocolo OData. A continuación es lo que estoy haciendo.

Estoy usando fiddler para la petición GET que es como sigue

https://127.0.0.1/odata/controllerName('param1','param2')

En mi clase de controlador, tengo dos métodos de controlador. Primer métodos de controlador acepta un único parámetro y el segundo acepta dos parámetros. Controlador método con un parámetro funciona bien.Cuando estoy solicitando el controlador con el método de dos parámetros, invoca el controlador de método con un parámetro. Yo no soy capaz de entender por qué no reconocer el controlador con el método de dos parámetros. O OData no admite varios parámetros.

Método de controlador 1

public int controllerName([FromOdataUri] string key);

Método De Controlador 2

public int controllerName([FromODataUri] string param1, [FromODataUri] string param2);
InformationsquelleAutor Varun Gupta | 2014-04-04

2 Comentarios

  1. 3

    Por el protocolo OData, si la clave de la entidad compuestos de 2 propiedades, a continuación, puede consultar en esta manera:

        ~/odata/EntitySet(key1='key1',key2='key2')
    

    Pero si no tiene clave, entonces usted puede necesitar Funciones, que son llamados con GET, y los parámetros se pasan en la URL, tales como

        ~/odata/Products(33)/Default.CalculateGeneralSalesTax(state='WA') 
        ~/odata/GetSalesTaxRate(state='CA')
    

    por favor, consulte este ejemplo: https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ODataFunctionSample/

    usted puede agregar tantos parámetros como desee.

    • Debido al vínculo de muestras… parece que hubo una necesidad para la aplicación de la Clave Compuesta de Controlador, si quieres llamarlo así…
  2. 2

    OData toma un parámetro, pero puede ser un JSON diccionario pasado como el cuerpo de solicitud. Ver el ejemplo aquí bajo el título «la Invocación de la Acción» y Google alrededor de ODataActionParameters a ver cómo .NET WebAPI implementa el OData parámetro diccionario requisito.

Dejar respuesta

Please enter your comment!
Please enter your name here