【问题标题】:Post a form from asp to asp.Net将表单从 asp 发布到 asp.Net
【发布时间】:2011-02-11 13:50:00
【问题描述】:

我有一个经典的 asp 应用程序。我想将该页面的竞赛表格发布到 Asp.Net 表格。原因是我想在进入数据库之前使用我在 Asp.Net 页面中内置的大量逻辑进行验证,而我对 asp 不太了解。更不用说 asp.Net 更安全了。

实现这一目标的最佳方法是什么?我的想法如下:

我的asp页面:

<html>
  <body>
    <form action="/Contests/entry.aspx" method="post">
      Name: <input type="text" name="fname" size="20" />
      Last Name: <input type="text" name="lname" size="20" />
      <input type="submit" value="Submit" />

    </form>
  </body>
</html>

aspx 页面在虚拟目录中运行,并且会处理发布到它的任何内容。

这可能吗,还是 aspx 可以防止这种事情发生?

我(最好)不想在 aspx 中创建表单,因为我的同事想要控制页面并自己构建 html,我不想经常更改它的麻烦。

我需要考虑哪些注意事项?

我会遇到什么障碍?

如何访问已发布的表单值? Request.Form?

【问题讨论】:

  • 使用 asp.net MVC 是一种选择吗?这里也有一个非常相似的问题stackoverflow.com/questions/431296/…,接受的答案看起来和你想做的一样。
  • @R0MANARMY:实际上,是的,这是一个选项。我一定会看看那个解决方案!

标签: asp.net asp-classic postback cross-posting


【解决方案1】:

是的,这是可能的。一般来说,一个 POST 就是一个 POST。因此,您可以根据需要从 PHP 页面发布到 .NET 页面。您可以像现在一样访问Request.Form 变量。您必须查看 ASP Classic 页面才能看到帖子项目的名称,但一般来说,您可以像从 .NET 页面粘贴一样访问它们。

【讨论】:

  • 很高兴知道这一点。出于某种原因,我认为 Asp.Net 进行了一些安全验证,以确保发布的内容是真实的。
【解决方案2】:

这可以完成并且工作正常。您将通过 Request.Form 访问 Posted Form 值。

我认为最大的警告是您需要以某种方式处理无效数据 - 通常使用 web 表单时,.aspx 页面会再次显示验证错误,但这可能不适合您的情况。可能您需要将它们重定向回带有指示失败的查询字符串参数的 .asp 页面,并且该页面将需要允许其使用其先前值填充表单字段并显示错误消息的代码。

【讨论】:

  • 是的,我也在考虑这个问题。
  • 最后......轻松实现客户端数据验证(在 .Net 中很容易做到)超过了仅使用 post 值节省的时间。我尝试了javascript查询错误......但决定反对它。实施起来太麻烦了。感谢您的帖子。
【解决方案3】:

从经典的 asp 调用一个 ASP.NET 网络服务怎么样?

http://www.4guysfromrolla.com/webtech/070302-1.shtml

【讨论】:

  • 好建议。在这种情况下,这不是一个更好的选择,因为我想避免为这个遗留站点编写任何 asp 代码。营销团队希望在我们等待新的 asp.net 网站启动时添加一个竞赛,我希望他们能够编写一个基本的 html 表单并将其发布给我以处理数据。
猜你喜欢
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多