我需要以 {'key':'value', ..., } 的形式将变量从 C# 传递给 javascript。我尝试将它作为字符串传递并希望 javascript 能够解析它(因为 cshtml 页面上的 C# 被评估为服务器端,而 js 是客户端)但不幸的是引号被格式化为 &whateverthecodeis; 所以它没有用。我认为 JSON 可能是我正在寻找的,但我不知道如何使用它。
问问题
2290 次
2 回答
3
这是我可能会做的...
运行这个控制台应用程序,看看它做了什么:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// note: you will have to include a reference to "System.Web.Extensions" in your project to be able to use this...
using System.Web.Script.Serialization;
namespace KeyValuePairTestApp
{
class Program
{
static void Main(string[] args)
{
List<KeyValuePair<string, string>> pairs = new List<KeyValuePair<string, string>>()
{
new KeyValuePair<string, string>("MyFirstKey", "MyFirstValue"),
new KeyValuePair<string, string>("MySecondKey", "MySecondValue")
};
string json = new JavaScriptSerializer().Serialize(pairs);
Console.WriteLine(json);
}
}
}
对于“传递到 javascript”部分,请参阅在 asp.net mvc 中对控制器进行简单的 Ajax 调用,以获取 MVC 和 jQuery 的实际示例。
于 2013-08-16T19:14:55.937 回答
1
是的,您可以使用 JSON。也许您应该尝试使用转义字符来转义被误解的引号。或者在上面的答案@user1477388 中,将keyvalupairs 序列化为Json 并返回如下:
public ActionResult ReturnJsonObject()
{
//Your code goes here
return Json(json);
}
于 2013-08-17T19:35:49.887 回答