【发布时间】:2015-11-26 09:48:43
【问题描述】:
我有 HTML 页面,我调用 web api 来上传文件。我的客户端代码是:
<input name="file" type="file" id="load-image" />
<script>
...
var data = new FormData();
var files = $("#load-image").get(0).files;
data.append("UploadedImage", files[0]);
var ajaxRequest = $.ajax({
type: "POST",
url: "/UploadImage",
contentType: false,
processData: false,
data: data
});
和服务器端代码:
public class FileUploadController : ApiController
{
[HttpPost]
public void UploadImage()
{
if (HttpContext.Current.Request.Files.AllKeys.Any())...
它有效。现在我想在 MVC 项目中做同样的事情。我的客户端代码相同,但服务器端代码略有不同。
控制器的基类是控制器(不是 api 控制器),当我尝试这个时:
public class FileUploadController : ApiController
[HttpPost]
public void UploadImage()
{
if (HttpContext.Current.Request.Files.AllKeys.Any())
我收到错误提示“System.Web.HttpContextBase”不包含“当前”的定义...
我应该在 MVC 中进行哪些更改以使文件上传与 webApi 中的工作方式相同? 客户端代码是一样的吗?
【问题讨论】:
-
尝试使用这个 System.Web.HttpContext.Current
-
请不要做这样的事情。使用传递给包含文件的路由的模型正确执行此操作。
-
谢谢菲尔。您是否有一些带有示例或描述如何将模型传递给路由的 url?
标签: c# jquery model-view-controller