繁体   English   中英

我想将 json 字符串转换为 C# 数组

[英]I want to convert json string to C# array

我的模型

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 字符串转换为字符串数组并将所有数据传递给“string[] 选项”

您尝试使用类似代码生成多项选择,然后尝试将 json 字符串转换回的方式,完全不是ASP.Net MVCWebAPI希望您这样做的方式。 有非常非常简单和容易的方法来做到这一点。 最好的办法是——

  1. 使用编辑器模板渲染视图
  2. 使用form post直接发帖,使用默认的ModelBinder为你绑定。 您将直接获得对象。 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 }))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM