मैं एक http अनुरोध किए बिना सीधे नियंत्रक से किसी क्रिया के परिणाम प्राप्त करने का प्रयास कर रहा हूं

अभी कंट्रोलर को इंस्टेंट करना और कुछ आइटम में परिणाम जोड़ने की कोशिश करने वाली विधि को कॉल करना जो एक अलग प्रकार में है

// other file 
_params.Id = item.Id;
var Presponse = new ProductsController().GetProducts(_params);
item.p = Presponse;

//controller file
public class ProductsController : ApiController
{
    [HttpPost]
    [Route("products")]
    [Compress]
    // controller method signature
    public async Task<IHttpActionResult> GetProducts(TheParams model){ 
       .... some logic ....
       Ok(results) 
    }
}

यह कहता है कि मैं अपने मामले में, मेरे मामले में एक डीटीओ कक्षा में निहित रूप से परिवर्तित नहीं कर सकता, मैं एक HTTP अनुरोध की तरह प्रतिक्रिया (ऑब्जेक्ट) का मूल्य प्राप्त करने की उम्मीद कर रहा हूं लेकिन सीधे इसे कास्ट करता हूं।

0
LuisDavis 18 फरवरी 2019, 16:40

1 उत्तर

सबसे बढ़िया उत्तर
// You could use await if your method is async, for simplicity just Result.
  IHttpActionResult actionResult = new ProductsController().GetProducts(_params).Result;

// if your result is a Product Type
  var contentResult = actionResult as OkNegotiatedContentResult<Product>;
  Product product = contentResult.Content;

// Map to your DTO class for example
   ProductDto dto = new ProductDto()
   {
        Id = product.Id,
        Name = product.Name
    };
0
Hasta Tamang 18 फरवरी 2019, 14:48