Хотя есть и другие похожие публикации, ни одна из них на самом деле не посвящена веб-сайтам ASP.NET с загрузкой файла Javascript PageMethod. Я хотел бы выбрать файл из моего селектора файлов (он работает) и отправить его в WebMethod, чтобы загрузить его.
Мне удалось выбрать файл и отправить его в мой WebMethod. Однако я не уверен, как преобразовать объект в читаемый формат на С#. Это файл CSV.
Javascript:
<script>
//formstone file drop picker library
$(".upload").upload({
beforeSend: onBeforeSend
});
function onBeforeSend(formData, file) {
if (file.name.indexOf(".csv") < 0) {
return false;
}
//file is successfully received here
var fd = new FormData();
fd.append(file.name, file);
//this gets called as well
PageMethods.set_path("manage-products.aspx");
PageMethods.UploadCSV(file, onSuccess, onFailure);
function onSuccess(response) {
}
function onFailure() {
console.info("FAIL");
}
return formData;
}
</script>
С# веб-метод:
[WebMethod]
public static void UploadCSV(object formData)
{
//I'm trying to get the file data and convert to a readable file here
}





На этот вопрос уже есть ответ здесь я чувствую. Есть несколько способов принять файл в контроллер c#:
Один из них такой:
[APIController]
[HttpPost]
public ActionResult Post(IFormFile myFile)
{
if (myFile==null)
{//ErrorHandling
return BadRequest();
}
//do what ever you please with your file here
return Ok();
}
Приведенный выше пример был для меня самым простым способом понять и реализовать. может быть, это полезно для вас. Просто откройте Swagger на этом контроллере, нажмите F12 в браузере и используйте Endpoint. вы увидите в разделе «Сеть» инструментов разработчика вашего браузера, как должен быть реализован запрос к контроллеру.