ASP.NET:将数据从客户端发布到服务器

ASP.NET: Post data from client to server

本文关键字:服务器 客户端 NET 数据 ASP      更新时间:2023-09-26

我对 ASP.NET 有点陌生,我正在尝试找出将数据从客户端发布到服务器的正确方法。目前,我有一个包含HTML内容的ASPX页面,我正在考虑如何将HTML内容中的数据发布到服务器。假设我想在发布数据之前做一些 javascript 的东西,那么这样做的"最佳实践"是什么。

  1. 它应该是一个简单的 HTML 表单,在 .cs 文件中带有侦听器(假设我可以在实际发布之前注入一些 javascript 代码(。
  2. 也许我应该有一个简单的 HTML(而不是 pf ASPX(来使用 javascript 发布数据?
  3. 别的?

谢谢

假设你已经有一个服务器端表单,你只需要处理表单的onsubmit事件。

<html>
<head>
  <script language="javascript">
     function handleSubmit()
     {
        var form = this;
        .....
     }
  </script>
</head>
<body>
  <form runat="server" onsubmit="handleSubmit()">
      ...
  </form>
</body>
</html>

handleSubmit()应在script块或外部脚本中声明。如果您从此方法返回false,它将停止提交表单;其他任何内容,它将继续提交到服务器。

ASP

.NET只使用一种形式,回发由ASP .NET控件触发,或者使用javascript触发。某些控件默认触发回发,其中一些控件需要设置,例如属性AutoPostBack。这意味着,HTML 上方有一个层,控件会为您完成。您只需处理服务器端的事件(.cs文件(。这试图模仿WinForms。

如果要提交表单,只需放置一个按钮并处理其单击事件服务器端,从中可以访问其他控件的值。因此,页面上只有一个表单,因此该过程可以自动化。

如果你熟悉 HTML 并且刚刚开始使用 ASP .NET,我建议你看看 ASP .NET MVC,从 HTML 的角度来看,事情更直接。

只需在表单标签中定义操作并设置方法属性即可像这样发布和提交表单,

<form id="myForm" runat="server" action="Default.aspx" method="post"> 
// some fields are here. for instance
<asp:TextBox ID="txtName" runat="server" ></asp:TextBox>
<asp:Button ID="btnSubmit" Text="Submit" runat="server"/>
</form>

单击"提交"按钮时,文本框值发布到操作页面"默认.aspx">

并从默认代码中获取此值.aspx.cs如下所示

  public partial class Default : System.Web.UI.Page
    {
               string name = Request.Form["txtName"];
    }

如果使用 ASP.Net 控件,则可以查看视图状态和回发概念以实现所需的内容。但是如果你使用的是HTML控件,我建议你使用ajax,而不是使用html表单将数据发布到aspx页面。你可以使用 jQuery.ajax(( 来实现这个目的。

此时的问题是如何在后端处理 ajax 请求?您可以执行以下操作之一:

  1. 创建一个 aspx 页,用于读取已发布的数据并返回 json 响应。您需要设置 Response.ContentType = "application/json" 并使用 Response.Write(( 编写 json;并在此页面中调用 Response.End((。- 这很容易,但做事方式很蹩脚。

  2. 创建一个读取帖子数据并提供 json 响应的 HTTP 处理程序。

  3. 创建 .asmx Web 服务并使用它。

  4. 使用页面 Web 方法。检查 http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

  5. 创建 WCF REST Web 服务。检查 http://www.codeproject.com/Articles/571813/A-Beginners-Tutorial-on-Creating-WCF-REST-Services

  6. 使用新的和很棒的 Web API。检查 http://www.asp.net/web-api