如何在c#中将JSON对象作为参数输入控制器方法

本文关键字:参数 输入 控制器 方法 对象 中将 JSON | 更新日期: 2023-09-27 18:02:39

下面是我的控制器类:

using Pay.Models;
using System.Web.Http;
using Pay.General;
namespace Pay.Controllers
{
    [RoutePrefix("Account")]
    public class AccountsController : ApiController     
    {
        [Route("Login")]
        [HttpPost]   
        public UserSession Login([FromBody]LoginUser loginUser)
        {
            if (loginUser.email != null && loginUser.password !=null && loginUser.token !=null) { }
            byte[] mSessionID = new Session().getmSessionID();
            return new UserSession
            {
                SessionID = mSessionID
            };
        }
    }
}

模型类LoginUser是

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Pay.Models
{
    public class LoginUser
    {
        public string email { get; set; }
        public string password { get; set; }
        public byte[] token { get; set; }
    }
}

但是当我调用Login函数时,LoginUser对象被设置为null。请告知如何将JSON对象设置为Controller类

如何在c#中将JSON对象作为参数输入控制器方法

我得到了同事的帮助,她找到了一个合适的链接。

https://weblog.west-wind.com/posts/2013/dec/13/accepting-raw-request-body-content-with-aspnet-web-api..。

我为解决这个问题所做的代码更改是

public async Task Login(){字符串输入= await Request.Content.ReadAsStringAsync();dynamic data = Newtonsoft.Json.Linq.JObject.Parse(input);}

(输入-返回JSON格式的字符串)(data -返回JSON对象)