1

我需要以 {'key':'value', ..., } 的形式将变量从 C# 传递给 javascript。我尝试将它作为字符串传递并希望 javascript 能够解析它(因为 cshtml 页面上的 C# 被评估为服务器端,而 js 是客户端)但不幸的是引号被格式化为 &whateverthecodeis; 所以它没有用。我认为 JSON 可能是我正在寻找的,但我不知道如何使用它。

4

2 回答 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 回答