如何将创建的对象从控制器(.ascx)传递到页面(.aspx)

时间:2016-05-26 08:08:46

标签: c# jquery asp.net webforms ascx

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

在此对话框中,我然后提示添加名称,坐标等。一旦我在.ascx.cs(c#文件)中点击"提交",它就会创建给定您输入的数据的新MapLocation对象。

然而,我当时需要做的是,以某种方式将新创建的MapLocation对象(在.ascx中创建)传递回网页(.aspx),以便我可以将它添加到List中页面(aspx.cs)。然后,我可以通过对话框不断添加新位置,并将它们统计在页面中。

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

以下是所涉及页面的代码结构,如果它有所不同:

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

感谢您的帮助! FYP

1 个答案:

答案 0 :(得分: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);

希望这对你有用。