当我想在ASP.Net MVC
中尝试上传文件时,我收到以下错误。
文件错误
在administratorPortal.dll
中发生了'System.NullReferenceException'类型的第一次机会异常
文件错误
线程''(0x21e4)已退出,代码为0(0x0)。 在administratorPortal.dll
中发生了'System.NullReferenceException'类型的第一次机会异常
在我看来
<form action="../../Controllers/patientAppointmentController.cs" method=post>
<input id="model" type="file" name="fileUpload" data-val="true" data-val-required="File is required" />
<input class="btn btn-primary" type="submit" value="Import" />
</form>
在我的控制器中
public ActionResult CSVUpload(HttpPostedFileBase fileUpload)
{
try
{
Debug.Write(fileUpload.ContentLength);
if (fileUpload.ContentLength < 0 || fileUpload == null)
{
Debug.Write("unable to detectFile");
}
}
catch
{
Debug.Write("file error");
}
return View();
}
有一些问题,我甚至无法将文件传递给控制器。我尝试过在互联网上找到的许多不同的方法,但它们都不适合我。
答案 0 :(得分:4)
表单似乎指向错误的位置
<form action="/patientAppointment/CSVUpload" method="post" enctype="multipart/form-data">
<input id="model" type="file" name="fileUpload" data-val="true" data-val-required="File is required" />
<input class="btn btn-primary" type="submit" value="Import" />
</form>
正如@Fals指出的那样,你还需要使用HttpPost
属性来装饰方法,以表明它接收到一个表单。
[HttpPost]
public ActionResult CSVUpload(HttpPostedFileBase fileUpload)
{
try
{
Debug.Write(fileUpload.ContentLength);
if (fileUpload.ContentLength < 0 || fileUpload == null)
{
Debug.Write("unable to detectFile");
}
}
catch
{
Debug.Write("file error");
}
return View();
}
答案 1 :(得分:1)
表单的操作不应该指向资源的地址而不是.cs文件吗?