2017-08-07 45 views
0

我的控制器方法:ASP.NET正確類型的映射方法時包含對象字典作爲值

public async Task<ActionResult> Manage(GeneratorSchema schema) 

GeneratorSchema:

public class GeneratorSchema 
{ 
    public Guid Id { get; set; } 
    public GeneratorTypes Type { get; set; } 
    public Dictionary<string, object> Payload { get; set; } 
} 

實施例的數據發送形式通過POST:

<input name="Id" value="*ValidGuid*" /> 
<input name="Type" value="*ValidEnum*" /> 
<input name="Payload[Name]" value="Kevin" /> 
<input name="Payload[Age]" value="22" /> 
<input name="Payload[Balance]" value="0,55" /> 

當這個表單被髮送時,控制器正確地將其映射爲GeneratorSchema對象,但是當涉及到d ictionary我收到正確的鍵,但這些鍵的值是一個字符串數組,其中只有一個字符串,其中是來自表單的值。我假設它是因爲字典的值被設置爲object類型。

如何解析字典數據,使數值具有正確的類型而不使用數組?

回答

0

現在我已經開發了一個非常基本的答案。

 foreach(var key in schema.Payload.Keys.ToList()) 
     { 
      if(schema.Payload[key].GetType().IsArray) 
      { 
       string[] value = schema.Payload[key] as string[]; 
       schema.Payload[key] = value[0]; 

       double dValue; 
       if (double.TryParse((string)schema.Payload[key], out dValue)) 
        schema.Payload[key] = dValue; 
      } 
     } 
相關問題