2011-12-29 34 views
1

我有一个网页和一个模态对话框页面。点击显示模式对话框中的保存按钮。关闭窗口并返回一个值。现在,当 控件达到父窗口的JavaScript函数时。我打算在这个返回的ID的基础上执行一些数据库操作。避免在网络表单中隐藏字段

我正在使用以下方法来利用此返回的值。

  1. 将其保留在隐藏字段中并在隐藏控件中填充返回的值。
  2. 在父窗口中保留一个隐藏的按钮,当控件返回到父页面的JavaScript函数时执行单击事件。因此,在服务器端按钮处理程序从隐藏字段获取值并根据返回的值执行数据库操作。

这种方法很好。或者我可以摆脱隐藏的领域

回答

1

如果返回的ID不是非常敏感的信息,那么某人可以使用这些信息修改不属于他的记录。人们可以在客户端完美地处理任何其他ID的ID,并让您的逻辑更新与您的预期不同的记录。

如果你只是在调用一个传递这个ID的服务器端方法;你为什么不从弹出窗口本身进行整个更新(在那个时候你已经知道了ID)?

如果父窗口(页面)打算更新;您只需执行页面的正常刷新(即使用window.location将用户重定向到同一页面,以便他可以看到更新或使用Response.Redirect即可访问同一页面。)

+0

我在父页面有一个网格,父页面正在使用这个ID,还有一些其他操作 – Pankaj 2011-12-29 17:40:57

+0

@StackOverlowUser:同样,如果这个信息不敏感,并且没有人操作这个风险破解你的应用的ID(例如内联网应用)。如果这里唯一的变量是你返回的ID,我没有看到你如何不可能在弹出窗口中做所有其他你在父窗口上做的事情,而只是让父窗口自己刷新。 – Icarus 2011-12-29 17:46:01

1

你可能要找的东西叫做AJAX。使用AJAX,您可以直接在JavaScript代码中与您的Web服务器通信。那么不需要HTML表单文章。你可能想看看像JQuery这样的框架。这些具有简单的实现(跨浏览器包装)通过AJAX发送HTTP请求。

注意:我刚刚注意到,您正在使用ASP.NET。看看ASP.Net AJAX Page Methods

+0

我会查看它感谢这一概念。 – Pankaj 2011-12-29 17:48:19

+0

我查看了上面的建议文章,发现webMethod和静态方法需要这样做。我认为这有一个陷阱。我不能在这个静态方法中填充控件,因为我的表单控件不是静态的! – Pankaj 2012-01-09 14:56:19