weixin_39017744 2019-02-25 00:12 采纳率: 83.3%
浏览 501
已采纳

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

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

  • 写回答

1条回答 默认 最新

  • threenewbee 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);
            }
    
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器