我是ASP.NET的新手,我试图弄清楚从客户端向服务器发布数据的正确方法。 目前我有一个ASPX页面,其中包含HTML内容,我正在考虑如何将数据从HTML内容发布到服务器。 假设我想在发布数据之前做一些javascript的东西,这样做的“最佳实践”是什么。
由于
答案 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请求?您可以执行以下操作之一:
创建一个aspx页面,读取已发布的数据并返回json响应。您需要设置Response.ContentType =“application / json”并使用Response.Write()写入json;并在此页面中调用Response.End()。 - 这很简单但却是一种蹩脚的做事方式。
创建一个HTTP处理程序,用于读取发布数据并提供json响应。
创建.asmx网络服务并使用它。
使用Page Web方法。查看http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
创建WCF REST Web服务。查看http://www.codeproject.com/Articles/571813/A-Beginners-Tutorial-on-Creating-WCF-REST-Services
使用新的和令人敬畏的Web API。查看http://www.asp.net/web-api