简体   繁体   中英

How to select from two table by id in mvc5

I'm new to MVC5,I had troubles with the problem. can anybody help me?

I have 2 table, DocMain(Doc_Id,Doc_Title) , DocProduct(Doc_Id,Doc_Content) , I want to select the 2 table content by the same Doc_Id . And loop them. Display like:

<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>

.... And how to do it?

//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);
}

}

I don't know how to write the controller code and View code.

As you want to display the title and content only, so your view model would be

public  class MainProductViewModel
{
      public IEnumerable<ProductInfo> Products { get; set;}
}
public class ProductInfo 
{
      public string DocMainTitle { get; set;}
      public string DocProductContent { get; set;}
}

And your query would be:

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 };

And assign this products to the Products of MainProductViewModel and return to view, then config your view as

@model MainProductViewModel

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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