javascript - 如何将字典从 c#(服务器)传递到 javascript(客户端)

标签 javascript c# asp.net .net

我在 c# 中有一个构建字典的函数,我需要将这个字典传递给我的 java 脚本函数。

这是我试过的

我的服务器功能

  public partial class login : System.Web.UI.Page
    {
        protected Dictionary<string, string> GetTradingTypeToSelect()
            {
                Dictionary<string, string> dict = new Dictionary<string, string>();
                try {  
               string Types =GetString("some text);
               var items = Types.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)
    .Select(s => s.Split(new[] { '=' }));

                foreach (var item in items)
                {
                    dict.Add(item[1], item[0]);

                }
    //this working 100%
                }
                catch (Exception ex)
                {

                }
                return dict;
            }
}

我的客户:

$(document).ready(function () {

    $("#Account").keyup(function () {

        var TradingTypeToSelect = '<%=GetTradingTypeToSelect();%>';
//TradingTypeToSelect  is equals to string '<%=GetTradingTypeToSelect();%>' 
        var test = TradingTypeToSelect[0].key;
        var test2 = TradingTypeToSelect[0].value;



    });

 });

我在这里错过了什么?

最佳答案

您可以在后面的代码中创建一个[WebMethod] 并使用$.ajax 从javascript 中调用它。下面是一个完整的示例:

代码隐藏:

[System.Web.Services.WebMethod]
public static Dictionary<string, string> GetTradingTypeToSelect()
{
    var dict = new Dictionary<string, string>();
    dict.Add("1", "Item 1");
    dict.Add("2", "Item 2");
    return dict;
}

.ASPX:

<head runat="server">
    <title></title>
    <script src="//code.jquery.com/jquery-1.12.3.min.js"></script>
    <script type="text/javascript">
        $(function () {

            $("#Account").keyup(function () {
                $.ajax({
                    type: "POST",
                    url: "AjaxCallExample.aspx/GetTradingTypeToSelect",
                    contentType: "application/json;charset=utf-8",
                    success: function (data) {
                        alert(data.d["1"]);
                        alert(data.d["2"]);
                    },
                    error: function (errordata) {
                        console.log(errordata);
                    }
                });
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <input id="Account" type="text" />
    </form>
</body>

关于javascript - 如何将字典从 c#(服务器)传递到 javascript(客户端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39145247/

相关文章:

javascript - Node.js 中的 &lt;!-- 运算符是什么?

带键的 Javascript 数组

c# - Json.net Collection 具有固定大小

c# - DirectX 或 OpenGL

ASP.NET MVC3 RC2 从请求参数到方法参数的绑定(bind)错误

javascript - 如何在浏览器控制台或外部脚本中调用 Reactjs 组件的方法?

c# - 使用 IoC 和 Dependency Injection,如何在不违反 Open-Closed 原则的情况下用新的实现层包装代码?

asp.net - 使用 MVC4 的 URL 末尾的点会引发错误

asp.net - http POST 与 asp.net

javascript - Angularjs $http 在第一次调用后未返回 ng-click 调用