【问题标题】:sending a javaobject from my C#从我的 C# 发送一个 javaobject
【发布时间】:2025-12-31 14:55:11
【问题描述】:

美好的一天

我想从我的 C# 程序向我的 Javascript 发送一个对象我正在使用 webBrowser 对象在我的表单应用程序上显示我的网站。我需要帮助从 C# 发送对象。

这是我在 javascript 中的工作代码:

map.addMarker({ 
id: 1,
lat: -26.9200682,
lng: 28.5713688,
icon: "icons/red.png"
event: {
name: 'click',
callback: function() {
    window.external.Test('Marker 1')
  }
 } 
});

如果我想获取一个对象,我认为我的 javascript 应该是这样的:

map.addMarker({
var obj:window.external.setMarker() 

} );

如果对象制作正确,以下是将执行的函数。 addMarker: function(opts) { var marker; opts.position = { lat: opts.lat, lng: opts.lng } marker = this._createMarker(opts); if (opts.event) { this._on({ obj: marker, event: opts.event.name, callback: opts.event.callback }); } },

这里是被调用的 C# 代码:

 public  class marker
    {
        public int MyProperty { get; set; }
        public int id { get; set; }
        public double lat { get; set; }
        public double lng { get; set; }
        public string icon { get; set; }

        public marker()
        {
           id = 3 ;
           lat = -28.9200682 ;
           lng = 29.8713688;
           icon = "icons/red.png";

        }

【问题讨论】:

    标签: javascript c# google-maps-api-3


    【解决方案1】:

    如果您需要从 js 代码访问 C# 对象,您可以序列化您的 C# 对象。您可以使用 Microsoft 序列化程序来处理 https://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer(v=vs.110).aspx

    【讨论】:

    • 所以我必须转换...在将我的对象发送回我的 JavaScript 之前在 C# 中序列化它?公共对象 setMarker() { 标记 markera = new marker(); var javaObj = new JavaScriptSerializer(); var ja = javaObj.ConvertToType(javaObj, somthing);返回 ja;返回类型是什么?
    • 据我了解,您需要在 webBrowser 中编写一些内容(部分 JS 代码)。我没有经验如何使用这个对象。我希望你能找到办法。因此,如果您序列化您的 c# 对象,您会收到可以在 JS 代码中使用的字符串(JSON 格式)。像这样: var obj= new JavaScriptSerializer().Serialize(options) // 其中 options 是你的 C3 对象,带有必要的选项
    最近更新 更多