2016-10-10 64 views
-1

我的模型我想JSON字符串轉換爲C#陣列

public class Questions 
{ 
    public string Question { get; set; } 

    public string[] Options { get; set; } 
} 

我的控制器方法來創建紙

[HttpPost] 
    public ActionResult Create() 
    { 
     var resolveRequest = HttpContext.Request; 
     resolveRequest.InputStream.Seek(0, SeekOrigin.Begin); 
     string jsonString = new StreamReader(resolveRequest.InputStream).ReadToEnd(); 
     var dist = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(jsonString); 
     string[] result = dist.Select(kv => kv.Value.ToString()).ToArray(); 
     var conn = new MongoClient(Settings.Default.ConnectionStringSetting); 
     var server = conn.GetServer(); 
     mongodb = server.GetDatabase(Settings.Default.DbMongoName); 
     var collection = mongodb.GetCollection<MultiChoice>("MultiChoice"); 
     collection.Update(Query<PaperDetail>.EQ(s => s.paperName, "sam"), Update<MultiChoice>.AddToSet(s => s.questions, new Questions { Question = "Some question", Options = result })); 
     return RedirectToAction("MultipleChoice"); 
    } 

我想我的JSON字符串轉換爲字符串數組,並通過所有數據「字符串[]選項「

+0

什麼問題? – Arijoon

+1

@Arijoon沒有:D至少,不是我能看到的... – Icepickle

+0

如何將json數組反序列化爲c#字符串數組? – user3573876

回答

0

您試圖用類似代碼生成多選的方式,然後試圖將json字符串轉換回來,而不是所有的方式ASP.Net MVCWebAPI想讓你去做。有非常非常簡單和容易的方法來做到這一點。最好的辦法是 -

  1. 渲染,其中包含編輯模板
  2. 使用形式後視圖直接發佈和使用默認的模型綁定器綁定它。您將直接獲取對象。 MVC會爲你轉換它。

試試這個文章 -

https://msdn.microsoft.com/en-us/library/dd405231(v=vs.98).aspx

編輯

使用這樣的事情 -

[HttpPost] 
public ActionResult Create(Questions model) 
{ 
} 

,但使這項工作,你必須使用一個視圖類似於此 -

@model Questions 
...... 

@using (Html.BeginForm("Create", ..., FormMethod.Post,..) 
{ 
    @Html.TextBoxFor(x => x.Question) 

    @Html.DropDownListFor(model => model.Options, Model.Options.Select(x => new SelectListItem() { Text = x Value = x })) 
+0

問題是我無法將json字符串轉換回c#數組... – user3573876

+0

請告訴我如何從json字符串中獲取所有值到數組中。 – user3573876

+0

我已經做了,但你似乎只是需要解決方案,不想學習這一點。長遠來看不好。無論如何,請檢查編輯。 –