如何在ViewComponents中的ASP.net MVC Core中显示外部表值

时间:2016-05-30 09:05:27

标签: razor asp.net-core-mvc

我有一个类似下面的模式,

public int userId{ get; set; }
public string userName{ get; set; }

public int categoryId { get; set; }
[ForeignKey("categoryId")]
public virtual category categories { get; set; }

我正在使用ViewComponents,这是我的Invoke方法;

public IViewComponentResult Invoke()
{
    var users = db.Users.OrderByDescending(x => x.userId);

    return View(users);
}

这是我的View Component的cshtml页面;

@model IEnumerable<users>

@foreach (var user in Model)
{
    <text>
        { label: "@user.userName - @user.categories.categoryName},
    </text>
}

但是对于如何,我无法获得类别名称的价值。当我这样做时,我得到500内部错误。

那么如何在ASP.NET MVC CORE中的View Component中获取外部表值。

感谢。

1 个答案:

答案 0 :(得分:0)

确定一件事创建一个viewModel并提及你需要的所有列,之后在User和Category表之间放置一个连接并传递如下所示的数据。 以这种方式进行虚拟查询您的代码肯定可以工作..只需根据您的列和需求进行更改

var query = from book in context.BOOKs
            join publisher in context.Publishers
            on book.PublisherId equals publisher.Id
            select new BookModel {
                Id = book.Id,Title=book.Title,
                PublisherName=publisher.Name,Auther = book.Auther,
                Year = book.Year,Price=book.Price
            };