MVC的WebAPI模型的结合问题

问题描述:

IM所面临的问题,需要帮助的MVC的WebAPI模型的结合问题

我在的WebAPI请求位已经在请求模型

public HttpResponseMessage Update(MyRequest req) 

class MyRequest{ 
public string UserName {get; set;} 
public CustomEnum Type {get; set;} 
} 

Enum CustomEnum { 
Registered , 
UnRegistered 
} 

的问题是在我的请求IM seding一个枚举值,该值不CustomEnum的一部分,但由于自身的WebAPI映射值这让我没有发现

,所以我想的异常何不当请求到达我自己绘制它像

class MyRequest{ 
public string {get; set;} 
public CustomEnum { 
get { 
if (??? = "NEWVALUE") ??? = "Registered"; 
return {???} ; set;} 
} 

问题是我无法得到?这个值在获取访问器,可以有人帮助我如何得到它

+0

请问您能向我们展示更多的代码:更新控制器,或许是模型绑定器 – Marusyk

+0

好吧,这几乎是所有的代码。更新(MyRequest的请求)是在控制器,即时通讯发送请求通过postMan和WEB做模型绑定本身即那里的问题 – Salman

+0

如果我可以得到价值获取我的请求类访问器然后我可以做,如果其他那多数民众赞成在即时尝试做 – Salman

如果我理解正确的问题,你本质上试图绑定一个值到CustomEnum类型,它不是那个enum的任何定义值 - so价值不能被绑定到我认为是异常的原因。

我想你可以做的却是这样的:

class MyRequest{ 
    public string UserName {get; set;} 
    public string Type {get; set;} 
    pulic CustomEnum? TypeAsEnum 
    { 
     get{ 
      CustomEnum value; 
      return Enum.TryParse(typeof(CustomEnum), out value) ? value : (CustomEnum?)null; 
     } 
    } 
} 

那么我认为任何值应该是绑定的类型属性(因为它是一个string),你可以使用TypeAsEnum属性获取CustomEnum类型值,如果Type不能转换为CustomEnum类型,则返回null。在任何情况下,您仍然可以从Type属性获取该文本的表示形式。