Asp.Net VB ajax访问请求数据

时间:2015-08-10 17:06:21

标签: jquery asp.net ajax

当用户点击某个项目以JSON格式发布所选项目的产品信息时,我需要访问所请求网址的JSON数据,是否有人可以帮我这样做?

$("[id*='btnProductAdd']").click(function (event) {
    var ProductId = $(this).closest(".product-btn").find("[id*='ProductId']").val();
    AddProduct(81, ProductId);
});

function AddProduct(UserId, ProductId) {

    var ProductInfo = {
        userid: UserId,
        productid: ProductId
    }

    var Url = 'http://mydomain.co.uk/admin/Search.UserProductAdd';

    $.ajax({
        url: Url,
        type: 'post',
        contentType: 'application/json; charset=utf-8',
        data: ProductInfo,
        dataType: 'json',
        async: true,
        success: function (data) {


        },
        error: function onXmlError() {
            $('#data').html('Sorry we cannot retreive any data currently, please refresh the page.');
        }
    });
}

UPDATE 似乎有点混乱所以只是为了进一步解释......它不是在一个不同的领域。我只需要帮助访问我的代码发布到页面/admin/Search.UserProductAdd的数据,这是ASP.NET VB 4.5。我之前使用GET但不是POST,我使用下面的GET:

Imports Microsoft.VisualBasic
Imports System.Web
Imports System.Data
Imports System.Data.SqlClient
Imports System.Web.Script.Serialization

Public Class htmlreturn
    Implements IHttpHandler

    Public Sub ProcessRequest(ByVal context As System.Web.HttpContext) Implements System.Web.IHttpHandler.ProcessRequest

        Dim requestHttp As HttpRequest = context.Request
        Dim response As HttpResponse = context.Response    

        Dim UserId As Integer = requestHttp.QueryString("User_Id")
        Dim RowNo As Integer = requestHttp.QueryString("rno")
        Dim RowStart As Integer = requestHttp.QueryString("rstart")
        Dim HostDomain As String = HttpContext.Current.Request.Url.Host


        Dim ConnSql As SqlConnection = New SqlConnection()
        ConnSql.ConnectionString = ConfigurationManager.ConnectionStrings("ConnSql").ConnectionString()

        Dim cmdSelect As SqlCommand = New SqlCommand()
        cmdSelect.Connection = ConnSql
        cmdSelect.CommandText = "spUserProductsTest"
        cmdSelect.CommandType = CommandType.StoredProcedure

        cmdSelect.Parameters.Add("@User_Id", SqlDbType.Int, ParameterDirection.Input).Value = UserId
        cmdSelect.Parameters.Add("@RowNumber", SqlDbType.Int, ParameterDirection.Input).Value = RowNo
        cmdSelect.Parameters.Add("@RowStart", SqlDbType.Int, ParameterDirection.Input).Value = RowStart

        Dim daSelect As SqlDataAdapter = New SqlDataAdapter
        daSelect.SelectCommand = cmdSelect

        Dim dsSelect As DataSet = New DataSet()
        daSelect.Fill(dsSelect, "Select")

        cmdSelect.Dispose()
        ConnSql.Close()


        Dim iRows As Integer = dsSelect.Tables("Select").Rows.Count

        Dim ProductHtml As String = ""


        If (dsSelect.Tables.Count > 0) And (dsSelect.Tables(0).Rows.Count > 0) Then

            For i = 0 To iRows - 1

                Dim CategoryId As String = dsSelect.Tables("Select").Rows(i).Item("Category_Id")
                Dim SubcategoryId As String = dsSelect.Tables("Select").Rows(i).Item("Subcategory_Id")
                Dim ProductCode As String = dsSelect.Tables("Select").Rows(i).Item("Code")
                Dim ProductTitle As String = dsSelect.Tables("Select").Rows(i).Item("Title")
                Dim ProductDescription As String = dsSelect.Tables("Select").Rows(i).Item("Description")
                Dim ProductMake As String = dsSelect.Tables("Select").Rows(i).Item("Make")
                Dim ProductModel As String = dsSelect.Tables("Select").Rows(i).Item("Model")


                ProductHtml += "<div class=""data-row""><div>" & CategoryId & "</div>" & "<div>" & SubcategoryId & "</div>" & "<div>" & ProductCode & "</div>" & _
                    "<div>" & ProductTitle & "</div>" & "<div><p>" & ProductDescription & "</p></div>" & "<div>" & ProductMake & "</div>" & "<div>" & ProductModel & "</div></div>"

            Next

            response.ClearHeaders()
            response.ContentType = "text/html;charset=UTF-8"
            response.Write(ProductHtml)

        End If


    End Sub

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

End Class

2 个答案:

答案 0 :(得分:-1)

因此,根据您的更新,如果您只需要jQuery POSTS到后端VB函数的数据,您需要做的就是使用Request.Form对象而不是Request.QueryString对象。否则,它们的工作方式完全相同。

    Dim requestHttp As HttpRequest = context.Request
    Dim UserId As Integer = requestHttp.Form("userid")
    Dim ProductId As Integer = requestHttp.Form("productid")

此外,不要忘记修复您的javascript:

$("[id*='btnProductAdd']").click(function (event) {
    var ProductId = $(this).closest(".product-btn").find("[id*='ProductId']").val();
    AddProduct(81, ProductId);
});

function AddProduct(UserId, ProductId) {

    var ProductInfo = {
        userid: UserId,
        productid: ProductId
    }

    var Url = '/admin/Search.UserProductAdd';

    $.ajax({
        url: Url,
        type: 'POST',
        data: ProductInfo,
        dataType: 'json',
        success: function (data) {
             console.log('Your return data is here.', data);
        },
        error: function() {
            $('#data').html('Sorry we cannot retreive any data currently, please refresh the page.');
        }
    });
}

答案 1 :(得分:-1)

我终于找到了一些帮助我找到答案的东西,所以我想把这个放在这里以防其他人有同样的问题...希望它有所帮助。

我只需要在网址上获取请求信息的帮助。

npm run say-hello --greeting='hello'