weixin_39017744 2019-02-24 16:12 采纳率: 84.2%
浏览 501
已采纳

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

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

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-02-24 16: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 DevEco studio开发工具 真机联调找不到手机设备
  • ¥15 请教前后端分离的问题
  • ¥100 冷钱包突然失效,急寻解决方案
  • ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
  • ¥15 距离软磁铁一定距离的磁感应强度大小怎么求
  • ¥15 霍尔传感器hmc5883l的xyz轴输出和该点的磁感应强度大小的关系是什么
  • ¥15 vscode开发micropython,import模块出现异常
  • ¥20 Excel数据自动录入表单并提交
  • ¥30 silcavo仿真,30分钟,只需要代码
  • ¥15 FastReport 怎么实现打印后马上关闭打印预览窗口