Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我尝试上载图像时,为什么会出现NullReferenceException?_C#_Asp.net Mvc - Fatal编程技术网

C# 当我尝试上载图像时,为什么会出现NullReferenceException?

C# 当我尝试上载图像时,为什么会出现NullReferenceException?,c#,asp.net-mvc,C#,Asp.net Mvc,嗨,我是C#的新手,我正在为这个问题而挣扎 我正试图上传一张图片并将其保存到本地文件夹中,但我正在尝试 尝试时出现NullReferenceException 我的控制器 [HttpPost] public ActionResult Index(Picture pic) { Picture newPix = pic; if (newPix.File.ContentLength > 0) { var fi

嗨,我是C#的新手,我正在为这个问题而挣扎

我正试图上传一张图片并将其保存到本地文件夹中,但我正在尝试 尝试时出现NullReferenceException

我的控制器

[HttpPost]
    public ActionResult Index(Picture pic)
    {
        Picture newPix = pic;
        if (newPix.File.ContentLength > 0)
        {
            var fileName = Path.GetFileName(pic.File.FileName);
            //var fileName = pic.File.FileName;
            var path = Path.Combine(Server.MapPath("~/Content/images"), fileName);
            pic.File.SaveAs(path);
        }
        return RedirectToAction("Index");
    }
我的看法

<div class="row">
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <table>
        <tr>
            <td>File:</td>
            <td><input type="file" id="File" /></td>
            <td><input type="submit" name="submit" value="Upload" /></td>
        </tr>

    </table>
}

调试时,我可以看到控制器中的pic为空,我是否从窗体向控制器发送了错误的文件?

当您尝试读取
newPix.file
属性时,您会收到空引用异常
newPix
null,您正在尝试读取null的某些属性

因为模型绑定失败,所以它是空的!当视图模型属性名称和表单元素名称相同时,会发生模型绑定。表单元素缺少
名称
属性。添加它,它应该会工作

<input type="file" name="File" id="File" />


下次出现错误时,请在代码中插入visual studio断点并检查变量值,您将了解失败的原因。

当您尝试读取
newPix.File
属性时,将出现空引用异常
newPix
null,您正在尝试读取null的某些属性

因为模型绑定失败,所以它是空的!当视图模型属性名称和表单元素名称相同时,会发生模型绑定。表单元素缺少
名称
属性。添加它,它应该会工作

<input type="file" name="File" id="File" />

下次出现错误时,请在代码中插入visual studio断点并检查变量值,您将了解失败的原因。

您的输入文件id为“文件”,操作结果应为“pic

将您的HTML更新为

<td><input type="file" id="file" name="file" /></td>
您的输入文件id为“文件”,操作结果应为“pic

将您的HTML更新为

<td><input type="file" id="file" name="file" /></td>

哪一行引发异常?如果(newPix.File.ContentLength>0)此行,哪一行引发异常?如果(newPix.File.ContentLength>0)此行