【问题标题】:How to pass a created object from a controller (.ascx) to a page (.aspx)如何将创建的对象从控制器 (.ascx) 传递到页面 (.aspx)
【发布时间】:2016-05-26 08:08:45
【问题描述】:

我有一个包含地图的普通 asp.net 网页表单页面 (.aspx),当您单击“添加标记”链接时,它会点击一些加载/显示弹出对话框 (.ascx) 顶部的 JQuery的页面。

在此对话框中,系统会提示我添加名称、坐标等。点击“提交”后,在 .ascx.cs(c# 文件)中,它会根据数据创建一个新的 MapLocation 对象你输入。

但是,我接下来需要做的是以某种方式将新创建的 MapLocation 对象(在 .ascx 中创建)传递回网页 (.aspx),以便我可以将其添加到列表中页面 (aspx.cs)。然后我可以从那里通过对话框不断添加新位置并在页面中记录它们。

我希望这很简单而且我很愚蠢,因为过去两天我一直在拔头发 - 我真的不想每次提交一个位置时都访问数据库,这是我唯一的另一个位置一分钟的选择。

以下是所涉及页面的代码结构,如果有影响的话:

-map
  -webform.aspx
-controls
  -popup.ascx

感谢您的帮助! 元年

【问题讨论】:

    标签: c# jquery asp.net webforms ascx


    【解决方案1】:

    在我看来,MapLocation 对象应该存储在 System.Web.SessionState.HttpSessionState 键中,并在 ASPX 页面上测试会话请求是否来自它。

    [ASCX.cs]

    MapLocation user = new MapLocation();
    
    // MapLocation property settings goes here
    
    // Store MapLocation object on Session
    Session["YourSession"] = user;
    

    [ASPX.cs]

    MapLocation location = Session["YourSession"] as MapLocation;
    
    // create a list based on the object
    List<MapLocation> list = new List<MapLocation>();
    list.Add(location);
    

    希望这对你有用。

    【讨论】:

      猜你喜欢
      • 2013-08-30
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多