宁檬檬 2019-04-25 17:40 采纳率: 100%
浏览 825
已采纳

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 02:02
    关注

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

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

报告相同问题?

悬赏问题

  • ¥15 cmake+mingw使用<mysqlx/xdevapi.h>报错
  • ¥15 eNSP中防火墙的使用
  • ¥15 不能对数据库增删改但是可以查询
  • ¥15 在触控设备上启动TabTip.exe打不开键盘界面,怎么用代码启动进程打开界面
  • ¥15 关于#mlnet#的问题:mlnet相关请求(语言-c#)
  • ¥15 lvgl7.11怎么做出文字被选中的效果
  • ¥50 如何快速查看手机目标app的主要服务器ip
  • ¥15 (标签-stm32|关键词-m3)
  • ¥15 matlab中频率调制法代码的解读
  • ¥15 ceph的对象、块、文件相关问题求解答
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部