c# - JSON.NET 反序列化客户端

标签 c# javascript json knockout.js json.net

在 C# 中,我通过 Controller 执行此操作:

public ActionResult GetCompanies()
{
    var vm = new CompanyViewModel { jsonData = JsonConvert.Serialize(_repository.All<Company>()) };

    return View(vm);
}

ViewModel 看起来像这样:

public CompanyViewModel
{
    public string jsonData {get;set}
}

在客户端:

@model MyWebApp.ViewModels.CompanyViewModel

@Scripts.Render("~/bundles/knockout")
<script type="text/javascript">
   var serverData = <!-- Many Things To Do Here -->
</script>

<!-- Many Things To Do Here -->部分您可以执行一些操作将服务器数据放入 JavaScript 对象中。

执行此操作的最佳方法是什么,因为我遇到了 JSON.parse 的问题处理 JSON.NET 序列化的某些字符。

只是将纯数据放在那里好吗(它有效):var serverData = @Html.Raw(@Model.jsonData)

这里还应该/可以做哪些其他事情?

最佳答案

不必创建一个模型来保存 JSON 字符串,只需将纯 .NET 对象传递到您的 View ,然后将其序列化为 JSON:

在你的 Controller 中:

public ActionResult GetCompanies()
{
    return View(_repository.All<Comapny>());
}

那么在你看来:

<script>
    var companies = @Html.Raw(JsonConvert.SerializeObject(Model));
</script>

如果您希望/需要 View 中的强类型模型,则应将您的 CompanyViewModel 更改为:

public class CompanyViewModel
{
    public IList<Company> Companies {get; set;}
    //Or whatever sort of collection your repository returns
}

在你的 Controller 中

public ActionResult GetCompanies()
{
    var vm = new CompanyViewModel { Companies = _repository.All<Company>() };
    return View(vm);
}

那么在你看来:

@model MyWebApp.ViewModels.CompanyViewModel
<script>
    var companies = @Html.Raw(JsonConvert.SerializeObject(Model.Companies));
</script>

关于c# - JSON.NET 反序列化客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24437750/

相关文章:

c# - 无法从程序集 'ADODB._Recordset_Deprecated' 加载类型 'ADODB, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

c# - 我们可以在 ASP .NET MVC 中重载 Controller 方法吗

javascript - 如何使用 Joi 清理 hapi 的查询参数?

c# - 从 url 解析 Twitter 列表 id/用户名(C# 或 JavaScript)

c++ - 在C++中获取嵌套的JSON数组和矩阵

c# - 如何将数字格式化为带前导零的字符串?

c# - 在 Windows 窗体中托管 WPF 时出现问题 - C#

javascript - Jquery .scroll() 在 IE 中不适用于 $(window) 和 $(document)。 (window.pageYOffset 的问题?)

jquery - 如何使用没有外部名称的 .each 解析 json 数组?

javascript - Meteor 将 JSON 导入集合