【问题标题】:Need to pass key-value pairs from C# to Javascript需要将键值对从 C# 传递到 Javascript
【发布时间】:2013-08-19 06:35:42
【问题描述】:

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

【问题讨论】:

  • 您仍然可以使用 JSON,您必须删除返回的字符串格式。在这里再深入一点,你就会明白如何做到这一点。
  • 你试过用谷歌搜索“c# json key value”吗?这是非常简单的结果之一。如果您有任何问题,请告诉我stackoverflow.com/questions/4861138/…
  • 如果您的应用程序是一个 ASP.Net 页面,那么您可以使用 RegisterClientScript/RegisterStartupScript 将您的 javascript 写入页面。它将按原样写入页面而不进行编码。
  • @user1477388 非常感谢!我试过谷歌搜索,但显然不是很正确。我现在有一个 JsonResult。有没有办法在不查询返回 JsonResult 的页面的情况下将其传递给我的 javascript? @ViewData["CustomersSearch"] 呈现为 System.Web.Mvc.JsonResult
  • @user1579458 如果您想将数据从 c# 传递到 javascript,那么您就是在谈论 AJAX。您可以通过 jQuery 完成这个最简单的操作,如下所示 api.jquery.com/jQuery.ajax 这是 MVC 的一个实际示例 stackoverflow.com/questions/16186083/…

标签: c# javascript asp.net-mvc json


【解决方案1】:

这是我可能会做的...

运行这个控制台应用程序,看看它做了什么:

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”部分,请参阅此处 Making a Simple Ajax call to controller in asp.net mvc 以获取 MVC 和 jQuery 的实际示例。

【讨论】:

    【解决方案2】:

    是的,您可以使用 JSON。 也许您应该尝试使用转义字符来转义被误解的引号。 或者如上面的答案@user1477388,将keyvalupairs序列化为Json并返回如下:

      public ActionResult ReturnJsonObject()
     {
        //Your code goes here
        return Json(json);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多