Javascript 如何使用asp.net处理html页面中的表单数据

Javascript 如何使用asp.net处理html页面中的表单数据,javascript,asp.net,forms,handler,Javascript,Asp.net,Forms,Handler,有时,我需要处理来自仅html网站的联系人表单的数据,带有托管限制,无法运行asp.net代码 在这种情况下,我如何保存数据?(在更简单的情况下,发送电子邮件)为了实现这一点,我通常将数据重定向到asp.net处理程序(托管在另一台运行asp.net的服务器上) 我是这样做的: html表单: <form name="ajax-form" id="ajax-form" action="http://somedomain.com/handler.ashx" method="p

有时,我需要处理来自仅html网站的联系人表单的数据,带有托管限制,无法运行asp.net代码


在这种情况下,我如何保存数据?(在更简单的情况下,发送电子邮件)

为了实现这一点,我通常将数据重定向到asp.net处理程序(托管在另一台运行asp.net的服务器上)

我是这样做的:

html表单:

        <form name="ajax-form" id="ajax-form" action="http://somedomain.com/handler.ashx" method="post">
            <label for="name">
                Nome: *
                <span class="error" id="err-name">please enter your name</span>
            </label>
            <input name="name" id="name" type="text" />
            <label for="email">
                E-Mail: *
                <span class="error" id="err-email">please enter your e-mail</span>
                <span class="error" id="err-emailvld">the e-mail does not have a valid format</span>
            </label>
            <input name="email" id="email" type="text" />
            <label for="message">Message:</label>
            <textarea name="message" id="message"></textarea>
            <div id="button-con"><button class="send_message" id="send">Send</button></div>
            <div class="error text-align-center" id="err-form">Error on form. Please check!</div>
            <div class="error text-align-center" id="err-timedout">Time out connecting to server...</div>
            <div class="error" id="err-state"></div>
        </form>
最后,我的handler.ashx的代码是:

<%@ WebHandler Language="VB" Class="Handler" %>

Imports System.Web.Script.Serialization
Imports System.IO

Public Class Handler : Implements IHttpHandler

    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        context.Response.ContentType = "text/plain"

        Try
            Dim strJson As String = New StreamReader(context.Request.InputStream).ReadToEnd()
            Dim objUsr As userInfo = Deserialize(Of userInfo)(strJson)

            If objUsr IsNot Nothing Then
                Dim name As String = objUsr.name
                Dim email As String = objUsr.email
                Dim message As String = objUsr.message

                'here you treat you data, some send email function using the data collected
                context.Response.Write(String.Format("Name :{0} , email={1}, message={2}", name, email, message))
            Else
                context.Response.Write("No Data")
            End If

        Catch ex As Exception
            context.Response.Write("Error :" & ex.Message)
        End Try
    End Sub

    Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property

    Public Class userInfo
        Public Property name As String
        Public Property email As String
        Public Property message As String
    End Class

    Public Function Deserialize(Of T)(ByVal context As String) As T
        Dim jsonData As String = context
        Dim obj = CType(New JavaScriptSerializer().Deserialize(Of T)(jsonData), T)
        Return obj
    End Function

End Class

导入System.Web.Script.Serialization
导入System.IO
公共类处理程序:实现IHttpHandler
Public Sub-ProcessRequest(ByVal上下文作为HttpContext)实现IHttpHandler.ProcessRequest
context.Response.ContentType=“text/plain”
尝试
Dim strJson As String=New StreamReader(context.Request.InputStream.ReadToEnd())
Dim objUsr As userInfo=反序列化(用户信息)(strJson)
如果objUsr不是什么,那么
Dim名称为String=objUsr.name
Dim email As String=objUsr.email
Dim消息作为字符串=objUsr.message
“在这里你处理你的数据,有些人使用收集的数据发送电子邮件功能
context.Response.Write(String.Format(“Name:{0},email={1},message={2}”,Name,email,message))
其他的
context.Response.Write(“无数据”)
如果结束
特例
context.Response.Write(“错误:”&ex.Message)
结束尝试
端接头
公共只读属性IsReusable()作为布尔值实现IHttpHandler.IsReusable
得到
返回错误
结束
端属性
公共类用户信息
作为字符串的公共属性名称
公共属性电子邮件作为字符串
作为字符串的公共属性消息
末级
公共函数反序列化(Of T)(ByVal上下文作为字符串)为T
将jsonData设置为字符串=上下文
Dim obj=CType(新的JavaScriptSerializer()。反序列化(Of T)(jsonData),T)
返回obj
端函数
末级

我希望这对您有用…

提供信息的意图是好的,但是StackOverflow不是这样工作的。你向提出要求的人提供答案。也许可以在博客上试试?
<%@ WebHandler Language="VB" Class="Handler" %>

Imports System.Web.Script.Serialization
Imports System.IO

Public Class Handler : Implements IHttpHandler

    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        context.Response.ContentType = "text/plain"

        Try
            Dim strJson As String = New StreamReader(context.Request.InputStream).ReadToEnd()
            Dim objUsr As userInfo = Deserialize(Of userInfo)(strJson)

            If objUsr IsNot Nothing Then
                Dim name As String = objUsr.name
                Dim email As String = objUsr.email
                Dim message As String = objUsr.message

                'here you treat you data, some send email function using the data collected
                context.Response.Write(String.Format("Name :{0} , email={1}, message={2}", name, email, message))
            Else
                context.Response.Write("No Data")
            End If

        Catch ex As Exception
            context.Response.Write("Error :" & ex.Message)
        End Try
    End Sub

    Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property

    Public Class userInfo
        Public Property name As String
        Public Property email As String
        Public Property message As String
    End Class

    Public Function Deserialize(Of T)(ByVal context As String) As T
        Dim jsonData As String = context
        Dim obj = CType(New JavaScriptSerializer().Deserialize(Of T)(jsonData), T)
        Return obj
    End Function

End Class