首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# Web参数始终为空

C# Web参数始终为空
EN

Stack Overflow用户
提问于 2017-03-17 20:18:30
回答 2查看 1.2K关注 0票数 1

我正在用令牌在c#中做一个web,但是我需要将postman的参数接收到我的方法

代码语言:javascript
运行
复制
 [HttpPost, Route("api/cobro/saveEmail")]
    public IHttpActionResult SaveEmailForDiscount([FromBody] string email)
    {
        //do something with e-mail
        return Ok(email);
    }

但电子邮件总是为空

这是PostMan请求

代码语言:javascript
运行
复制
POST /api/cobro/saveEmail HTTP/1.1
Host: localhost:53107
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: 881045b2-0f08-56ac-d345-ffe2f8f87f5e

email=jose%40gm.com

这是我的启动类,其中所有的配置

代码语言:javascript
运行
复制
    using System;
using Microsoft.Owin;
using Owin;
using Microsoft.Owin.Security.OAuth;
using System.Web.Http;
using System.Net.Http.Headers;

[assembly: OwinStartup(typeof(Cobros_BackEnd.Startup))]

namespace Cobros_BackEnd
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {


     app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

        var MyProvider = new AuthorizationServerProvider();
        OAuthAuthorizationServerOptions options = new OAuthAuthorizationServerOptions
        {

            AllowInsecureHttp = true,
            TokenEndpointPath = new PathString("/token"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
            Provider = MyProvider
        };
        app.UseOAuthAuthorizationServer(options);
        app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

        HttpConfiguration config = new HttpConfiguration();
        config.Formatters.JsonFormatter.SupportedMediaTypes
        .Add(new MediaTypeHeaderValue("text/xml"));

        //get all users
        config.Routes.MapHttpRoute(
            name: "Users",
            routeTemplate: "api/{controller}/users",
            defaults: new { id = RouteParameter.Optional }
            );



        WebApiConfig.Register(config);
    }
  }
}

我在GET中使用其他方法,一切都很好,但是我需要在POST上使用这个

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-17 20:55:20

可以创建一个类包装电子邮件字段,如下所示

代码语言:javascript
运行
复制
public class SaveEmailModel{
    public string Email{get;set;}
}

public IHttpActionResult SaveEmailForDiscount([FromBody] SaveEmailModel model){
...
}
票数 2
EN

Stack Overflow用户

发布于 2017-03-17 20:27:08

在您的请求正文中尝试以下内容:=jose%40gm.com

Web对在帖子正文中传递的简单类型不友好。您需要实际实现一个自定义数据绑定器才能做到这一点。我刚才说的是一件工作。我避免在body中发布简单类型,而在Web中不惜一切代价。Id更喜欢创建一个model对象,然后用JSON发送数据,这将映射到我的模型。您还可以使用FromUri并将字符串传递到url中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42866443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档