我正在尝试从包含Enum的端点绑定一个类对象: -
示例
.clearfix:after {
content: " ";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
.container{
margin: 0 auto;
width: 70%;
}
.blocks .image, .blocks .lines{
float: left;
}
.blocks .image {
border: 1px solid grey;
margin: 5px;
height: 100px;
width: 100px;
}
行动签名如下: -
public class Person
{
public string Name { get; set; }
public Gender Gender { get; set; }
}
public enum Gender
{
Male = 0,
Female = 1,
}
当使用请求正文中的下一个对象命中Action方法时,模型绑定失败: -
public async Task<IHttpActionResult> GetTest([FromBody] Person person)
模型绑定确实有效,我通过uri为枚举传递值,但这不是我想在这里实现的。
我是否需要创建类型转换器,或者有什么简单的我缺少?
答案 0 :(得分:1)
如果您正在执行GET请求(我假设您是因为您的方法名称),则无法从正文中读取值,因为实际上没有传递任何数据。这就是POST的用途。这就是在查询字符串中传递值时该值有效的原因。
答案 1 :(得分:0)
为您的枚举代码添加一个属性:
public int GenderCode{ get; set;}
并在get only中传递enum属性:
public Gender Gender{ get { return (Gender)this.GenderCode; } }
在您看来,建议一个下拉列表来显示可能的性别值列表,并将用户的选择值分配给属性GenderCode。