首页 > 解决方案 > 当我按下项目的详细信息操作链接时出现此错误

问题描述

每次我点击一个项目的详细信息时,它都会给我一个错误并且 id 等于 0,但是如果在我拥有的项目数内将 id 号更改为大于 1 的任何值,它就会正常运行这是我的方法

public PhoneModel GetPhone(int id)
{
    using(var context = new ElectronicsDataBaseEntities())
    {
         var result = context.Phone
              .Where(x => x.Id == id)
              .Select(x => new PhoneModel()
              {
                  Name = x.Name,
                  Phonemodel = x.Model,
                  DateReleased = x.DateReleased,
                  Desicription = x.Desicription
               })
               .FirstOrDefault();

                return result;
      }
}

这是我在控制器中的操作方法

public ActionResult Details(int id) 
{
    var result = repository.GetPhone(id);
    return View(result);
}

索引 错误

idex代码 索引

标签: c#asp.net-mvc

解决方案


将 Id 添加到您的查询中,并检查您的查询是否找到了一些东西。由于您的 url 显示 Id=0,因此您需要修复索引视图。应该是同一个故事。您必须添加 Id 才能选择索引视图的查询。

.....
.Select(x => new PhoneModel()
                    {
                        Id=x.Id,

                        Name = x.Name,
                        Phonemodel = x.Model,
                        DateReleased = x.DateReleased,
                        Desicription = x.Desicription
                    }).FirstOrDefault();
....

更新

尝试将此代码用于您的编辑操作链接

@Html.ActionLink("Edit", "Edit","Phone", new { id=item.Id }) 

并修复设置所有记录方法

public List<PhoneModel> GetAllPhones()
{  

 using(var context = new ElectronicsDataBaseEntities()) 
 { 
   var result = context.Phone .Select(x => new PhoneModel() 
  { 
   Id=x.Id,

  Name = x.Name, 
  Phonemodel = x.Model, 
  DateReleased = x.DateReleased, 
  Desicription = x.Desicription 
  }).ToList(); 

 return result; 
 } 
}

推荐阅读