我正在做一个小的ASP VB脚本来将文件上传到服务器。 代码实际上是有效的,它正确地复制文件,这是我的asp形式:
<html>
<head>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Upload File" />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
此页面表单由母版页调用,并加载到Div容器中,这样可以正常工作。 但是当我提交表单时,实际上传发生在VB中,整个页面刷新,而不仅仅是Div。 这是我的VB代码,以防你想知道:
Imports Microsoft.VisualBasic
Public Class fileUploader
Inherits System.Web.UI.Page
<System.Web.Services.WebMethod()>
Public Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
If FileUpload1.HasFile Then
Try
FileUpload1.SaveAs(Server.MapPath("~/uploads/") + FileUpload1.FileName)
ClientScript.RegisterClientScriptBlock(Me.[GetType](), Nothing, "hello();", True)
Catch ex As Exception
Label1.Text = "ERROR: " & ex.Message.ToString()
End Try
Else
Label1.Text = "You have not specified a file."
End If
End Sub
End Class
你能帮助我在其Div中刷新页面吗? 我可以使用Jquery Ajax提交表单吗?
更新 我创建了一个AJAX代码,但现在ASP VB 代码不会执行。
<script type="text/javascript">
function uploadFile() {
$.ajax({
type: 'POST',
url: 'fileUploader.aspx/Button1_Click',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
</script>
并将表单中的按钮操作更改为:
<asp:Button ID="Button1" runat="server" onclientclick="uploadFile()" Text="Upload File" />