如何在 mvc5 中按 id 从两个表中进行选择
本文关键字:两个 选择 行选 mvc5 中按 id | 更新日期: 2023-09-27 17:56:26
我是MVC5的新手,我遇到了这个问题。有人可以帮助我吗?
我有2张桌子,DocMain(Doc_Id,Doc_Title)
,DocProduct(Doc_Id,Doc_Content)
,我想通过相同的Doc_Id
选择 2 个表内容。并循环它们。显示如下:
<ul>
<li><a href="1">title1</a>content1</li>
<li><a href="2">title2</a>content2</li>
<li><a href="3">title3</a>content3</li>
</ul>
....怎么做呢?
//Here is my viewmodel
public class MainProductViewModel
{
public IEnumerable<DocMainListView> DocMainListView { get; set; }
public IEnumerable<DocProductListView> DocProductListView { get; set; }
}
-------------------------------------------------
//Here is my controller
public class DocProductController : Controller
{
private IDocProductRepository repository;
private IDocMainRepository repositoryMain;
public DocProductController(IDocProductRepository docProductRepository, IDocMainRepository docMainRepository)
{
this.repository = docProductRepository;
this.repositoryMain = docMainRepository;
}
public ActionResult List()
{
var products = from docProduct in repository.DocProduct
join docMain in repositoryMain.DocMain
on docProduct.Doc_Id equals docMain.Doc_Id
select new { DocMainTitle = docMain.Doc_Title, DocProductContent = docProduct.DocProduct_Content };
//ViewBag.products = products;
//DocProductListView model = new DocProductListView
//{
// DocProduct = repository.DocProduct
// .Join(repositoryMain.DocMain,
// docProduct => docProduct.Doc_Id,
// docMain => docMain.Doc_Id,
// (docProduct, docMain) => new { a = docMain.Doc_Id, b = docProduct.Doc_Id })
// .OrderByDescending(n => n.)
//};
return View(products);
}
}
我不知道如何编写控制器代码和查看代码。
由于您只想显示标题和内容,因此您的视图模型将是
public class MainProductViewModel
{
public IEnumerable<ProductInfo> Products { get; set;}
}
public class ProductInfo
{
public string DocMainTitle { get; set;}
public string DocProductContent { get; set;}
}
您的查询将是:
var products = from docProduct in repository.DocProduct
join docMain in repositoryMain.DocMain
on docProduct.Doc_Id equals docMain.Doc_Id
select new ProductInfo { DocMainTitle = docMain.Doc_Title, DocProductContent =
docProduct.DocProduct_Content };
并将此产品分配给主产品视图模型的产品并返回视图,然后将您的视图配置为
@model MainProductViewModel