控制器方法无法识别模型参数

狂暴

我有一个称为PostUserAccount的模型,并且我尝试使用Entity Framework在ApiController中将其作为参数使用生成具有读/写操作的控制器时的正常方式使用

由控制器生成器生成的示例:

    // POST api/Profile
    public HttpResponseMessage PostUserProfile(UserProfile userprofile)
    {
        if (ModelState.IsValid)
        {
            db.UserProfiles.Add(userprofile);
          ...etc

我正在使用的代码:

    // POST gamer/User?email&password&role
    public HttpResponseMessage PostUserAccount(PostAccountModel postaccountmodel)
    {
        if (!ModelState.IsValid)
        {
            return Request.CreateResponse(HttpStatusCode.BadRequest, ModelState);
        }

         if (postaccountmodel == null) return Request.CreateResponse(HttpStatusCode.BadRequest, "model is null");

        ...etc

无论出于何种原因,在这种情况下,postaccountmodel为null,运行此api命令将返回“ model is null”。有任何想法吗?

这是有问题的模型

public class PostAccountModel
{
    [Required]
    public string Email { get; set; }

    [Required]
    public string Password { get; set; }

    public string Role { get; set; }

    public string Avatar { get; set; }

    public string DisplayName { get; set; }
}
迈克·沃森(Mike Wasson)

您正在尝试通过URI查询字符串发送模型。问题:

  1. 您的查询字符串格式不正确-应该为?Email = xxx&Password = xxx&...

  2. 您需要使用[FromUri]属性修饰postaccountmodel参数,以告知Web API绑定URI中的模型

另一种选择是将模型中的模型作为JSON或XML发送。我建议您这样做,特别是如果您确实在请求中发送密码时。(并使用SSL!)

本主题描述了Web API中的参数绑定:http : //www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

控制器无法识别正确的处理程序方法

来自分类Dev

Grails集成测试无法识别控制器保存方法

来自分类Dev

Web API控制器无法识别新添加的方法

来自分类Dev

Angular无法识别我的控制器

来自分类Dev

无法识别弹簧控制器

来自分类Dev

Laravel无法识别控制器__invoke()

来自分类Dev

Angular JS无法识别控制器

来自分类Dev

控制器无法识别工厂

来自分类Dev

无法从控制器上的 AJAX post 方法获取参数

来自分类Dev

Laravel无法从控制器加载模型

来自分类Dev

Spring MVC中控制器方法参数中的模型模型

来自分类Dev

控制器中的Rails 5实例级别助手方法无法识别助手。方法

来自分类Dev

从视图控制器引用模型的方法

来自分类Dev

Rails调用方法控制器与模型

来自分类Dev

从控制器访问模型方法

来自分类Dev

在控制器内调用方法模型

来自分类Dev

Rails 控制器中的模型方法

来自分类Dev

将控制器的参数传递给用户模型中的方法

来自分类Dev

即使在控制器中调用方法,模型也无法接收来自方法的调用

来自分类Dev

获取Json控制器方法的参数

来自分类Dev

AngularJS-指令无法识别控制器

来自分类Dev

CakePHP控制器自定义功能无法识别

来自分类Dev

Swagger生成器无法识别控制器

来自分类Dev

保险丝盒无法识别控制器

来自分类Dev

离子单选按钮-控制器范围无法识别更改

来自分类Dev

无法在控制器中识别出工厂或服务

来自分类Dev

单独文件中的AngularJS控制器无法识别范围

来自分类Dev

Steam无法识别PS4控制器-18.04

来自分类Dev

Laravel将参数从控制器传递到模型