weixin_39017744
2019-02-25 00:12
采纳率: 71.1%
浏览 495

ASP.NET MVC项目中如何把一个生成的EntityFramework Detail做为另一个相关Model的Index页面

比如我想在商品页面中显示其他人对商品的评价。因为评价包括:评论者,评分和详情所以被存在另一个Table里面。但是我想在这一个页面里面都显示出来。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • blownewbee 2019-02-25 00:14
    已采纳

    查询的时候可以把两个不同表的数据都装进来,回头给你写个例子,稍等。

    图片说明

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using Q749957.Models;
    using System.IO;
    using System.Text.RegularExpressions;
    
    namespace Q749957.Controllers
    {
        public class ProductController : Controller
        {
    
            DataClasses1DataContext db = new DataClasses1DataContext();
    
            //
            // GET: /Product
    
            public ActionResult Index()
            {
                var model = db.Products.Select(x => new ProductShowViewModel()
                {
                    CreateTime = x.createtime,
                    Description = x.description,
                    Name = x.name,
                    ID = x.id
                }).ToList();
                return View(model);
            }
    
            //
            // GET: /Product/Create
    
            public ActionResult Create()
            {
                return View();
            }
    
            //
            // POST: /Product/Create
    
            [HttpPost]
            public ActionResult Create(FormCollection fc)
            {
                if (Request.Files.Count > 0)
                {
                    var file = Request.Files[0];
                    var filename = Directory.GetFiles(Request.MapPath("~/Upload")).Count() == 0 ? 0 :
                        Directory.GetFiles(Request.MapPath("~/Upload"))
                        .Where(x => Regex.IsMatch(x, "\\d+"))
                        .Select(x => int.Parse(Regex.Match(x, "\\d+").Value))
                        .Max() + 1;
                    file.SaveAs(Request.MapPath("~/Upload/" + filename));
                    var prod = new Product()
                    {
                        createtime = DateTime.Now,
                        description = Request["Description"],
                        name = Request["Name"],
                        picid = filename
                    };
                    db.Products.InsertOnSubmit(prod);
                    db.SubmitChanges();
                    db.Comments.InsertOnSubmit(new Comment() { comment1 = "good!", nickname = "Jack", prodid = prod.id });
                    db.SubmitChanges();
                    db.Comments.InsertOnSubmit(new Comment() { comment1 = "very good!", nickname = "Jim", prodid = prod.id });
                    db.SubmitChanges();
                }
                return View();
            }
    
            //
            // GET: /Product/Show/1
    
            public ActionResult Show(int id)
            {
                var prod = db.Products.Single(x => x.id == id);
                var model = new ProductShowViewModel()
                {
                    ID = prod.id,
                    Comments = db.Comments.Where(x => x.prodid == id)
                        .Select(x => new CommentItem
                        {
                            Comment = x.comment1,
                            NickName = x.nickname
                        }).ToList(),
                    CreateTime = prod.createtime,
                    Description = prod.description,
                    Name = prod.name,
                    Image = Request.ApplicationPath + "upload/" + prod.picid.ToString()
                };
                return View(model);
            }
    
        }
    }
    
    
    点赞 打赏 评论

相关推荐 更多相似问题