我想将json字符串转换为c#数组
本文关键字:数组 转换 字符串 json | 更新日期: 2023-09-27 18:12:21
我的模型
public class Questions
{
public string Question { get; set; }
public string[] Options { get; set; }
}
我的Controller创建纸张的方法
[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字符串转换为字符串数组,并将所有数据传递给"string[] Options"
你试图用类似的代码生成一个选择题,然后试图将json字符串转换回来,而不是像ASP.Net MVC
或WebAPI
希望你做的那样。有非常非常简单的方法可以做到这一点。最好的方法是-
- 用编辑器模板渲染视图
- 使用form post直接发布,并使用默认的ModelBinder为你绑定它。您将直接获得对象。MVC会为你转换的。
试试这篇文章-
https://msdn.microsoft.com/en-us/library/dd405231 (v = vs.98) . aspx
EDIT:
像这样写-
[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 }))