2

当我想尝试在 中上传文件时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();
    }

有一些问题,我什至无法将文件传递给控制器​​。我尝试了许多在互联网上找到的不同方法,但它们都不适合我。

  • 我已经安装了 CSVhelper
4

2 回答 2

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();
}
于 2013-09-18T17:09:30.993 回答
1

您的表单操作不应该指向资源的地址而不是 .cs 文件吗?

于 2013-09-18T17:06:49.350 回答