Значение скрытого поля отображается как неопределенное

У меня есть простая асинхронная загрузка asp.net, где я пытаюсь загрузить образец изображения из моей локальной системы и при загрузке пытаюсь выполнить простой веб-метод.

Сценарий:

  1. Загрузка изображения с помощью асинхронного загрузчика и его исправная работа и загрузка в папку назначения.

  2. Теперь при попытке сохранить fileupload.filename в скрытом поле и проверить, действительно ли он получает имя файла (это также работает)

  3. Теперь при попытке отправить переменную, в которой сохраняется значение скрытого поля, возникает проблема. Здесь он отображается как неопределенный.

Вот мой код:

Protected Sub fileUploadComplete(ByVal sender As Object, ByVal e As AsyncFileUploadEventArgs)
    Thread.Sleep(1000)
    Dim filename As String = System.IO.Path.GetFileName(fileUpload1.FileName)
    fileUpload1.SaveAs(Server.MapPath("UploadFiles/") & RandomFolder.Value & "/" & filename)
    lblFilename.Value = filename
End Sub

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        CreateFolder()
    End If
    Dim mypath As String = Server.MapPath("~/UploadFiles/")
    myFilePath.Value = mypath

End Sub
<WebMethod()> _

Открытая функция FileDetails (ByVal Filename As String, ByVal mypath As String) As String // Некоторые операции возвращают "True" End Function

HTML:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
           <link href="style/bootstrap.css" rel="stylesheet" />
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
    // This function will execute after file uploaded successfully
    function uploadComplete() {
        document.getElementById('<%=lblMsg.ClientID %>').innerHTML = "File Uploaded Successfully";
}
// This function will execute if file upload fails
function uploadError() {
    document.getElementById('<%=lblMsg.ClientID %>').innerHTML = "File upload Failed.";
}

$(document).ready(function () {
    $("#btnconvert").click(function () {
        var FileFolder = $('#RandomFolder').val();
        var filename = document.getElementById('<%=lblFilename.ClientID %>').val();
        alert(FileFolder);
        alert(filename);
        $.ajax({
            type: "POST",
            url: "AsyncUpload.aspx/FileDetails",
            data: JSON.stringify('{"Filename":"' + filename + '","mypath":"' + FileFolder + '"}'),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                // Replace the div's content with the page method's return.
                alert("Success");
            }
        });
    });
});
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ToolkitScriptManager ID="scriptManager1" runat="server"/>
<div>
<asp:AsyncFileUpload ID="fileUpload1" OnClientUploadComplete="uploadComplete" OnClientUploadError="uploadError" 
CompleteBackColor="White" Width="350px" runat="server" UploaderStyle="Modern" UploadingBackColor="#CCFFFF" 
ThrobberID="imgLoad" OnUploadedComplete="fileUploadComplete" /><br />
<asp:Image ID="imgLoad" runat="server" ImageUrl="loading.gif" />
<br />
<asp:Label ID="lblMsg" runat="server" Text=""></asp:Label>
</div>
    <asp:HiddenField ID="RandomFolder" runat="server"/>
    <asp:HiddenField ID="FilePath" runat="server"/>
     <asp:HiddenField ID="myFilePath" runat="server"/>
     <asp:HiddenField ID="lblFilename" runat="server"/>
     <button id="btndetails" class="btn btn-danger btnconvert" type="button">Convert file</button>
    </div>

person coder    schedule 13.03.2014    source источник


Ответы (2)


Вы вызываете значение скрытого поля с помощью метода val (), но этот метод не существует в вашем объекте поля; это метод jQuery. Либо оберните скрытое поле в jQuery:

var filename = $('#<%=lblFilename.ClientID %>').val();

Или просто вызовите свойство .value в своем поле:

var filename = document.getElementById('<%=lblFilename.ClientID %>').value;
person Menno van den Heuvel    schedule 13.03.2014
comment
Он по-прежнему дает мне то же нулевое значение - person coder; 14.03.2014

См. Эту страницу, она может помочь вам в достижении что ты пытаешься

person Mitesh Vora    schedule 01.04.2014