Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将变量传递给IHttpActionResult方法_Android_Asp.net Web Api_Entity Framework 6_Jsonhttpclient - Fatal编程技术网

Android 将变量传递给IHttpActionResult方法

Android 将变量传递给IHttpActionResult方法,android,asp.net-web-api,entity-framework-6,jsonhttpclient,Android,Asp.net Web Api,Entity Framework 6,Jsonhttpclient,我想在android中使用WebApi,如下所示(在NewProductActivity.java中): 当我在Fiddler中测试POST的api时,我得到一个405状态代码。我尝试使用: //[Route("api/products/{name}/{price}/{description}")] // POST: api/Products [HttpPost] //[ResponseType(typeof(Product))] public IHttp

我想在android中使用WebApi,如下所示(在NewProductActivity.java中):

当我在Fiddler中测试POST的api时,我得到一个405状态代码。我尝试使用:

    //[Route("api/products/{name}/{price}/{description}")]
    // POST: api/Products
    [HttpPost]
    //[ResponseType(typeof(Product))]
    public IHttpActionResult PostProduct(string name, decimal price, string description)
    {
以及下面示例im()中的原始实现,但我仍然得到了405:

     [HttpPost]
    //[ResponseType(typeof(Product))]
    public Product Post(string name, decimal price, string description)
    {
        Product product = new Product()
        {
            Name = name,
            Price = price,
            Description = description
        };

如果您想发布到MVC控制器,我会这样做:

使用以下属性创建复杂模型(类):

class MyRequest{

public string name {get;set};
public  decimal price{get;set};

public  string description{get;set};
}
  public Product Post(MyRequest request)
并按如下方式更改控制器:

class MyRequest{

public string name {get;set};
public  decimal price{get;set};

public  string description{get;set};
}
  public Product Post(MyRequest request)

别忘了更改您的android代码,以便它发送复杂的对象。

我首先使用EF数据库,所以我已经有了一个Product.cs类,其中定义了名称、价格和描述。我有点不知所措,我是否应该添加另一个类MyRequest,按照您的建议使用变量名称。我是否应该像这里这样做是的。或者,您可以重用现有的产品模型,如果是较小的项目,我将重用相同的模型,如果不是,我将创建特殊的RequestDTO对象。在我看来,这是最好的做法,因为你们可以发送一些其他的,而不仅仅是产品。