ASP.NET MVC 如何通过 Id 从另一个模型中获取名称
Posted
技术标签:
【中文标题】ASP.NET MVC 如何通过 Id 从另一个模型中获取名称【英文标题】:ASP.NET MVC how to get name from another model by Id 【发布时间】:2021-12-12 13:52:16 【问题描述】:我有一个问题,如何通过外键获取 details.cshtml 中的类别名称 - 工作模型中的 CategoryId?
work.cs
using System;
using System.ComponentModel.DataAnnotations;
namespace InfoKiosk.Domain.Entities
public class Work
public int WorkId get; set;
public string Name get; set;
public string Description get; set;
public int CategoryId get; set;
public Category Category get; set;
category.cs
public class Category
public int CategoryId get; set;
public string Name get; set;
我从下拉列表中选择的类别名称,我从 ViewBag 中填充。
details.cshtml
<dt>
<strong>@Html.DisplayNameFor(model => model.Category):</strong> @Html.DisplayFor(model => model.???)
</dt>
【问题讨论】:
【参考方案1】:使用这个
<dt>
<strong>@Html.DisplayNameFor(model => model.Category.Name):</strong> @Html.DisplayFor(model => model.Category.Name)
</dt>
在您的操作中包含类别
var model=context.Set<Work>().Iclude(c=>c.Category).FirstOrDefault(w=> w.WorkId==id);
return View(model);
【讨论】:
【参考方案2】:您可以在 ViewBag
中将其传递给视图,可能来自 Controller
:
string NameCategory = from c in context.Category
where c.CategoryId == work.categoryId
select c.Name
【讨论】:
以上是关于ASP.NET MVC 如何通过 Id 从另一个模型中获取名称的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET MVC 3 的一个解决方案中从另一个项目获取文件路径?
ASP.NET MVC:部分知道它是否从另一个页面带来请求?