简体   繁体   English

详情查看asp.net mvc5 外值为空

[英]Foreign value is empty in details view asp.net mvc5

I have the problem, that foreign values are not visible in my view.我有一个问题,在我看来,外国价值观是不可见的。

The value of TestId is correct in the DB but in the details view not correct visible. TestId 的值在数据库中是正确的,但在详细信息视图中不正确可见。

My view (in the browser) doesn`t show eny value for TestName.我的视图(在浏览器中)没有显示 TestName 的任何值。

My model classes:我的 model 类:

public class Issue
{
    public int Id { get; set; }

    public string Title { get; set; }

    public int TestId { get; set; }
    public Test Test { get; set; }
}


public class Test
{
    public int TestId { get; set; }
    public string TestName { get; set; }

    public List<Issue> Issues { get; set; }
}

My Issue Contorller:我的问题控制器:

// GET: Issues
public ActionResult Index()
{
    var issues = db.Issues.Include(i => i.Test);
    return View(issues.ToList());
}

// GET: Issues/Details/5
public ActionResult Details(int? id)
{
    if (id == null)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
    Issue issue = db.Issues.Find(id);
    if (issue == null)
    {
        return HttpNotFound();
    }
    return View(issue);
}

My Details View:我的详细信息视图:

<dl class="dl-horizontal">
    <dt>
        Title
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Title)
    </dd>
    <dt>
        Test
    </dt>
    <dd>
        @Html.DisplayFor(model => model.Test.TestName)
    </dd>
</dl>

The model.Title works great without any problems. model.Title 运行良好,没有任何问题。 In my DB of issue model I can see:在我的问题 model 数据库中,我可以看到:

ID  Title   TestId 
1   Test1   1
2   Test2   3
3   Test3   5

You should use Include to load navigation property.您应该使用Include来加载导航属性。

Issue issue = db.Issues.Include(a => a.Test).FirstOrDefault(a => a.Id == id);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM