我正在尝试从web api控制器中的Post Action中排除一个属性,对于asp.net web api,是否有类似[Bind(Exclude="Property")]
的内容?
这是我的模特:
public class ItemModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
我想在Post Action中排除Id,因为它是自动生成的,但我需要在Get Action中返回它。
我知道我可以有两个模型,一个用于我的Post动作,一个用于我的Get动作,但我只想用一个模型来做这个。
答案 0 :(得分:0)
我赞成映射模型,但这可以通过检查请求是否是ShouldSerialize方法中的POST来实现:
public class MyModel
{
public string MyProperty1 { get; set; }
public string MyProperty2 { get; set; }
public bool ShouldSerializeMyProperty2()
{
var request = HttpContext.Current.Request;
if (request.RequestType == "POST") return false;
return true;
}
}
您的方法名称是前缀为ShouldSerialize的属性的名称。
注意这适用于JSON。对于XML,您需要在配置中添加以下行:
config.Formatters.XmlFormatter.UseXmlSerializer = true;