【发布时间】:2021-04-14 03:00:27
【问题描述】:
我有一个带有文件输入和一个按钮的表单,当我按下按钮时,文件应该转到服务器端。
当我向服务器发送文件时,ajax 响应是成功的,永远不要在我使用的 c# webmethod 断点处停止。我做错了什么?
表单:(Default.aspx)
<form id="form1" runat="server" enctype="multipart/form-data">
<div align="center" class="divBody">
<div id="controlHost">
<div id="outerPanel">
<table width="100%" cellpadding="2" cellspacing="5">
<tr align="left">
<td colspan="2">
<span class="message">Seleccione el archivo que desea subir</span>
</td>
</tr>
<tr align="left">
<td valign="top">
<input type="file" id="FileInput" multiple="false" class="fileInput" />
</td>
<td align="right">
<input type="button" id="btnUpload" name="btnUpload" value="Upload" onclick="sendFile();" class="button" />
</td>
</tr>
</table>
</div>
</div>
</div>
</form>
脚本:(Default.aspx)
function sendFile() {
var data = new FormData();
var file = $("#FileInput")[0].files[0];
data.append("name", file.name);
data.append("size", file.size);
data.append("type", file.type);
data.append("file", file);
$.ajax({
type: "POST",
async: true,
url: "Default.aspx/UploadBlock",
data: data,
cache: false,
contentType: false,
processData: false,
success: function (result) {
alert("Success: " + result);
},
error: function (xhr, status) {
alert("An error occurred: " + status);
}
});
};
WebMethod: (Default.aspx.cs)
[WebMethod(EnableSession = true)] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public static Respuesta UploadBlock() { Respuesta res = new Respuesta { Success = true, Message = "OK" }; //Break point here return res; }
谢谢。
【问题讨论】:
-
返回调用是否命中错误块?
-
不,返回成功
-
而不是alert写console.log(result),看看对象是否有任何属性。
-
很明显,既然Ajax调用成功了,至少web服务器响应了一个HTTP代码,表示成功。如果它不会在断点处停止,那么您可能正在调用另一个方法。
-
@sandeepnagabhairava emmm...不,最后我没有其他方法可以使用外部 MVC 页面来执行该过程,然后一切正常,抱歉
标签: c# jquery ajax file webmethod