我将SignalR用于实时aspnet应用程序。用户应通过表格上传文件。
我使用JQuery代码进行上传-它将ajax请求后的内容发送到控制器方法:
<form id="uploader">
<label>Upload file:</label>
<input name="file" id="fileInput" type="file" multiple>
<input type="submit" value="Upload and check" id="check" />
</form>
$("#check").click(function () {
$("#uploader").ajaxSubmit({ url: '/Home/UploadAjax', type: 'post' });
})
public void UploadAjax()
{
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFileBase file = Request.Files[i];
int fileSize = file.ContentLength;
string fileName = file.FileName;
string mimeType = file.ContentType;
System.IO.Stream fileContent = file.InputStream;
file.SaveAs($@"{userFolderPath}\{fileName}");
Temp.certPath = $@"{userFolderPath}\{fileName}";
}
}
但是在UploadAjax()方法结束后,signalR重新连接到服务器。为什么会发生以及如何预防?
答案 0 :(得分:0)
问题出在输入类型上。 submit
导致页面刷新。
更改为button
可解决问题:
<input type="button" value="Upload and check" id="check" />