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

时间:2013-10-10 10:18:31

标签: javascript asp.net

我是ASP.NET的新手,我试图弄清楚从客户端向服务器发布数据的正确方法。 目前我有一个ASPX页面,其中包含HTML内容,我正在考虑如何将数据从HTML内容发布到服务器。 假设我想在发布数据之前做一些javascript的东西,这样做的“最佳实践”是什么。

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

4 个答案:

答案 0 :(得分:2)

假设您已经有一个服务器端表单,您只需要处理表单的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,则会停止提交的表单;其他任何东西,它将继续提交给服务器。

答案 1 :(得分:2)

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

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

如果您熟悉HTML并且刚开始使用ASP .NET,我建议您查看ASP .NET MVC,从HTML角度来看,这些内容更直接。

答案 2 :(得分:0)

只需在表单标记中定义操作并设置方法属性即可发布并提交此表单,

<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>

单击提交按钮时,文本框值发布到操作页面“Default.aspx”

并从default.aspx.cs这样的代码中获取此值

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

答案 3 :(得分:0)

如果您使用的是ASP.Net控件,您可以查看viewstate和postback概念以实现您想要的效果。但是如果你使用HTML控件我建议你使用ajax而不是使用html表单将数据发布到aspx页面。您可以为此目的使用jQuery.ajax()。

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

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

  2. 创建一个HTTP处理程序,用于读取发布数据并提供json响应。

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

  4. 使用Page 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