ASP.NET MVC API模型未解析
在ASP.NET MVC API中解析模型时遇到一些问题 这是我的API控制器:ASP.NET MVC API模型未解析,asp.net,asp.net-web-api,Asp.net,Asp.net Web Api,在ASP.NET MVC API中解析模型时遇到一些问题 这是我的API控制器: public class UserController : ApiController { // Hent liste af personer public IEnumerable<UserModel> Get() { return new UserModel[] { new UserModel(), new UserModel() }; } /
public class UserController : ApiController
{
// Hent liste af personer
public IEnumerable<UserModel> Get()
{
return new UserModel[] { new UserModel(), new UserModel() };
}
// Hente enkelt person
public UserModel Get(int id)
{
return new UserModel();
}
// Opret person
[ValidationActionFilter]
public CreateUserRespose Post([FromBody]UserModel model)
{
CreateUserRespose rs = new CreateUserRespose();
return rs;
}
// Rediger person
public UserModel Put(int id, [FromBody]UserModel model)
{
return new UserModel();
}
// Slet person
public UserModel Delete(int id)
{
return new UserModel();
}
}
当我用下面的身体把Fiddler叫到指挥所的时候
FirstName=Fistname MiddleName&LastName=SomeName&Email=email@email.us&MatrikelId=1234
将调用操作Post,但模型为null,ModelState.IsValid为true,如果我不发送正文数据,也会发生同样的情况!
我做错了什么
更新:
我尝试将数据作为json发送
小提琴手:
但是当模型为空时,模型状态是否应该无效?ASP.NET Web API正在使用内容协商过程来决定使用哪个
MediaTypeFormatter
来反序列化请求主体。对于典型的POST请求,它将检查接受
和内容类型
标题。如果不存在,它将使用列表中的第一个MediaTypeFormatter
(默认为JsonMediaTypeFormatter
)
在您的情况下,Web API无法确定正确的MediaTypeFormatter
。向请求中添加值为application/x-www-form-urlencoded
的内容类型
标题应该可以解决此问题
如果您想了解有关ASP.NET Web API中格式化程序、模型绑定和内容协商的更多详细信息,我建议您阅读以下内容:
- (如果您对学习ASP.NET Web API感兴趣,应该仔细阅读整本书)
内容类型
标题值是什么?我没有在fiddler中设置标题,标题如下“用户代理:fiddler主机:localhost:51268内容长度:79”请尝试删除parameters@Aviatrix我试过了,在这种情况下不起作用。请将其设置为application/x-www-form-urlencoded
,这样可以解决问题。如果您确认这是您的问题,我将在回答中详细描述。
FirstName=Fistname MiddleName&LastName=SomeName&Email=email@email.us&MatrikelId=1234
User-Agent: Fiddler
Host: localhost:51268
Content-Length: 102
Content-type: application/json
{"FristName":"Kasper asdasd","LastName":"asdasdasd","Email":"asdaasd@asdasd.us","MatrikelId":"132456asd"}