C#将值存储在静态字典中

时间:2013-12-04 07:52:06

标签: c# jquery dictionary

我有这个代码,我想在静态字典中存储left,top的参数值。在存储此值后,我想在Jquery中访问它们。感谢您的帮助。

我的代码

using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication1.MoveShape
{
    public class MoveShapeHub : Hub
    {
        public void calculate(string left, string top)
        {
            Clients.Others.updateshape(left, top);

        }

    }
}

1 个答案:

答案 0 :(得分:2)

jQuery在客户端运行,因此您无法直接与它通信。您有两种选择:

  • 通过http请求值(可能使用SignalR作为消息传递层,因为您正在引用它)
  • 将字典序列化为JSON到请求

幸运的是,后者对于大多数常见类型来说相当简单 - 这里使用Json.NET:

var data = new Dictionary<string, object>
{
    {"foo", 123},
    {"bar", "abc"},
    {"blap", true}
};
var json = JsonConvert.SerializeObject(data);

给了我们JSON:

{"foo":123,"bar":"abc","blap":true}

如果您将其分配到<script>中的变量,则可以将值引用为obj.barobj['bar']。但是:请记住,如果您执行此操作,所有值将被序列化 - 您可能希望在跟踪客户端实际关注(或应该被允许了解)方面更具限制性。


重要的一点是:如果您的“静态字典”实际上是static字典,那么请仔细考虑多个用户的影响。 static是编写仅扩展到单个用户的网站的一种非常好的方式。