Asp.net mvc 3 MVC 3上传文件-控制器中的空文件
我不知道我遗漏了什么,但我需要用C#MVC3上传一个文件。我按照SO中的说明操作,但文件总是空的 以下是我的实际测试代码: HTMLAsp.net mvc 3 MVC 3上传文件-控制器中的空文件,asp.net-mvc-3,c#-4.0,file-upload,asp.net-mvc-controller,Asp.net Mvc 3,C# 4.0,File Upload,Asp.net Mvc Controller,我不知道我遗漏了什么,但我需要用C#MVC3上传一个文件。我按照SO中的说明操作,但文件总是空的 以下是我的实际测试代码: HTML @using (Html.BeginForm("Prc", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" })) { <input type="file" name="file" id="file" /> <input type="submit" va
@using (Html.BeginForm("Prc", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="file" id="file" />
<input type="submit" value="submit" />
}
运行web应用程序时,我附加一个文件,然后单击提交。但是当我到达控制器
时,文件
对象是null
。始终null
。我尝试了一个XML
文件、一个JPEG
文件和一个GIF
文件,但都不起作用
除了这些代码之外,我还应该配置其他东西吗
谢谢在MVC中,您需要使用
HttpPostedFileBase
而不是HttpPostedFile
:
[HttpPost]
public ActionResult Prc(HttpPostedFileBase file)
{
//...
}
在MVC中,您需要使用
HttpPostedFileBase
而不是HttpPostedFile
:
[HttpPost]
public ActionResult Prc(HttpPostedFileBase file)
{
//...
}
还有一件事可能会把你绊倒 使用asp.net mvc 3 razor,我惊讶地发现传递给控制器方法的HttpPostedFileBase变量的名称必须与视图上文件输入标记的id和名称匹配。否则,asp.net会为HttpPostedFileBase变量传递null 例如,如果文件输入如下所示: 您的控制器方法如下所示: 公共操作结果上载文件(HttpPostedFileBase文件)
“filey”变量将为NULL。但是在控制器方法中将“filey”重命名为“filex”,它会成功地发布文件。还有一件事可能会让您绊倒 使用asp.net mvc 3 razor,我惊讶地发现传递给控制器方法的HttpPostedFileBase变量的名称必须与视图上文件输入标记的id和名称匹配。否则,asp.net会为HttpPostedFileBase变量传递null 例如,如果文件输入如下所示: 您的控制器方法如下所示: 公共操作结果上载文件(HttpPostedFileBase文件)
“filey”变量将为NULL。但是在控制器方法中将“filey”重命名为“filex”,它会成功地发布文件。Tom,很好的调用。你的帖子刚刚帮我摆脱了几个小时的麻烦。是的,我也是!我被卡住了,就是这件蠢事!谢谢汤姆,你叫得好。你的帖子刚刚帮我摆脱了几个小时的麻烦。是的,我也是!我被卡住了,就是这件蠢事!谢谢