宁檬檬 2019-04-26 01:40 采纳率: 100%
浏览 824
已采纳

System.NullReferenceException: '未将对象引用设置到对象的实例。'

刚学不久,自己写一个小项目,出现了这个异常
不知道是不是Session["UserId"]引起的
上网搜到一些解决方法试了试还是不成功
想请大家帮忙看一看

Controller下的ActionResult
//Update Picture
[HttpPost]
public ActionResult UpdatePicture(PictureVM obj)
{
int userId = Convert.ToInt32(Session["UserId"]);
if (userId == 0)
{
return RedirectToAction("Login", "Account");
}

        var file = obj.Picture;
        User u = db.Users.Find(userId);
        if( file != null)
        {
            //update the img
            var extension = Path.GetExtension(file.FileName);
            string id_and_extension = userId + extension;
            string imgUrl = "~/Profile_Images/" + id_and_extension;
            u.ImageUrl = imgUrl;
            db.Entry(u).State = EntityState.Modified; //*
            db.SaveChanges();

            var path = Server.MapPath("~/Profile_Images/");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path + id_and_extension);
            }
            //when update new img, delete old img
            if ((System.IO.File.Exists(path + id_and_extension))) //imgUrl
            {
                System.IO.File.Delete(path + id_and_extension);
            }
            file.SaveAs((path + id_and_extension));
        }
        return RedirectToAction("UserProfile");
    }
UserProfile.cshtml下关于ImageUrl的部分
        <dt>
            @Html.DisplayNameFor(model => model.ImageUrl)
        </dt>
        <dd style="margin-top:15px">
            @*@if(Model.ImageUrl.Length > 0)*@
            @*System.NullReferenceException: '未将对象引用设置到对象的实例。'
            ClairG.ChatApp.Domain.Entities.User.ImageUrl.get returned null.*@
            @if (Model.ImageUrl != null)  //无法保存图片
            {
                <img src="@Url.Content(Model.ImageUrl)" alt="No Image" style="height:200px" class="img-responsive img-circle" />
            }
            <br /><br />
            @using (Html.BeginForm("UpdatePicture", "User", FormMethod.Post,
                new { enctype = "multipart/form-data" }))
            {
                <input type="file" name="Picture class=" col-sm-2 form-control"" />
                <input type="submit" value="Save Image" class="btn btn-default" />
            }
        </dd>
  • 写回答

3条回答 默认 最新

  • 1进击的小白 2019-04-26 10:02
    关注

    User u = db.Users.Find(userId);
    看下这个是不是空的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 数电设计题 没有设计思路 不知道用什么芯片进行设计 求提供设计思路
  • ¥15 在动态多目标优化问题中,第一幅图展示的是问题DF6的相关定义和绘制的POS和POF图,请问图中公式PS(t)和PF(t)是如何推导的
  • ¥60 设计一种优化算法结合案例给出智能仓储四向穿梭车的调度计划
  • ¥15 Errno2:No such file or directory,在当前文件确实没有该图片,怎么解决?
  • ¥15 博世摄像头数据存储的问题(iscsi)
  • ¥15 如何实现对学生籍贯信息管理系统的选择排序
  • ¥15 写一个51单片机的时钟代码
  • ¥15 git clone报错
  • ¥15 3d-slicer超声造影动态图像导入报错
  • ¥15 化工过程分析与合成问题求解决