【问题标题】:Convert C# model to plain json-string将 C# 模型转换为纯 json 字符串
【发布时间】:2015-12-03 00:53:06
【问题描述】:

有没有什么简单的方法可以将C#-object 转换成可以被javascript 使用的纯字符串?

我尝试将字符串传递给 jQuery 函数,该函数将用真实值替换该字符串的某些部分,以通过 $.ajax 将它们作为请求对象传递。

无论我尝试过什么(在互联网上找到)都行不通。

目前我有:

var jsVariable = "@Html.Raw(Json.Encode(new MyClass()))"

但这会抛出一个Uncaught SyntaxError: Unexpected identifier,因为"没有正确转义。

更新 1

最后我想要 JSON 字符串

"{"Prop1": "{0}", "Prop2":"{1}"}"

我可以(在javascript)打电话

var request = string.Format(jsVariable, value1, value2);

启用

$.ajax({
    type: "POST",
    url: "someUrl",
    data: $.parseJson(request),
    success: function(data) {
        console.log("success");
    },
    dataType: "JSON"
})

【问题讨论】:

  • 您在寻找:newtonsoft.com/json 吗?
  • 我认为你可以使用json序列化方法,将转换为json对象
  • @tschmit007 : 同样想说

标签: javascript c# json razor encoding


【解决方案1】:

只需去掉双引号。

确保将其添加到视图的脚本标记中。

var jsVariable = @Html.Raw(Json.Encode(new MyClass()))

然后您将获得一个带有其属性的 javascript 对象 - 前提是 MyClass 已定义,并且可以在您的 CSHTML 中访问。

jsVariable.myProp, jsVariable.myOtherProp 。 .等等

【讨论】:

  • 这也是我部分结束的。我认为有一种简单的方法可以在 javascript 中将其作为字符串来替换 string.Format(jsVariable, value1, value2) 之类的属性值并从中构建 $.ajax 数据。所以它更像是Request-object 的某种模板
  • 如果你想改变属性值并将其传递给你的 ajax 调用 - 你可以像这样改变你的属性:jsVariable.myProp = yourNewValue,那么你可以将相同的对象传递给你的 ajax 调用- 数据:JSON.stringify(jsVariable)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多