将服务器端用户指南传递给客户端Ajax调用

时间:2014-04-12 02:18:36

标签: c# jquery asp.net ajax

我需要将User Guid传递给Ajax函数,但是当我尝试我收到错误时

  

SyntaxError:标识符在数字文字

之后立即开始

我的Serverside代码

public Guid GetUserID()
{
    Guid currentUserId = (Guid)Membership.GetUser().ProviderUserKey;

    return currentUserId;
}

客户端代码的一部分

<script>
    $(function () {
        LoadUserUploadFiles();
    });

    id = "<%=GetUserID()%>";
    function LoadUserUploadFiles(id) {

        alert(id);
        var url = '<%= ResolveUrl("/WebMethods.aspx/GetIndividuallyUploadedFiles") %>';

        $.ajax({
            url: url,
            type: "POST",
            data: JSON.stringify({ id: id }),
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (Result) {

                var html = '<table class="table-hover">';
                html += '<thead>';
                html += '<th>Username</th>';
                html += '<th>Upload Date</th>';
                html += '<th>Download</th>';
                html += '<th></th>';
                html += '</thead>';
                html += '<tbody>';
                $.each(Result.d, function (key, value) {
                    html += '<tr>';
                    html += '<td>' + value.UserName + '</td>';
                    html += '<td>' + value.DateStr + '</td>';
                    html += '<td>' + '<a href="' + value.FilePath + '">Download</a>' + '</td>';
                    html += '<td>' + '<input type="button" value="Delete" onclick="deleteUploadFile(this,' + value.Id + ')" >' + '</td>';
                    html += '</tr>';

                });
                html += '</tbody>';
                html += '</table>';

                $("#uploaddata").html(html);
            },


            error: function (e, x) {
                alert(x.ResponseText);
            }
        });
    }

2 个答案:

答案 0 :(得分:1)

在函数签名中,您应该具有参数名称。在调用函数时,您应该将guid传递给函数。请参阅以下示例:

<强> MARKUP:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <script>
        // Notice "id" is the parameter name here
        function LoadUserUploadFiles(id){
            alert(id);

        };
    </script>
        <input id="test" type="button" value="test" onclick='LoadUserUploadFiles("<%=GetUserID()%>")' />
    </div>
    </form>
</body>
</html>

<强> CODE:

使用System;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public Guid GetUserID()
    {
        Guid currentUserId = (Guid)Membership.GetUser().ProviderUserKey;
        return currentUserId;

    }
}

修改 您可以像这样更改代码:

   <script>
        $(function () {
            LoadUserUploadFiles('<%=GetUserID()%>');
            function LoadUserUploadFiles(id) {
                alert(id);
                var url = '<%= ResolveUrl("/WebMethods.aspx/GetIndividuallyUploadedFiles") %>';

                $.ajax({
                //Rest of the code goes here

答案 1 :(得分:0)

围绕GetUserId调用包裹引号。

function LoadUserUploadFiles("<%=GetUserID()%>")

我通过谷歌搜索找到了这个答案。在提问之前,始终将搜索引擎作为第一站。