2016-11-25 68 views
0

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

回答

0

如果我理解正確的問題,你本質上試圖綁定一個值到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屬性獲取該文本的表示形式。