Asp.net mvc 5 在ASP.NETMVC5中如何在网格中显示数据库表/数据

Asp.net mvc 5 在ASP.NETMVC5中如何在网格中显示数据库表/数据,asp.net-mvc-5,grid,Asp.net Mvc 5,Grid,我有两个表tblCompany和tblProduct。 我想在数据库中添加详细信息,我成功地做到了这一点。 我想通过@foreach在网格中显示此详细信息,但在将ListBox值GetCompanyList()和网格GetProductDetails()的数据从同一控制器显示到同一视图时发生冲突 我尝试了很多方法在网格中显示数据,并浏览了may站点,所有站点都使用单独的控制器和视图进行解释,但我希望在单个控制器和视图中显示数据。我正在使用实体框架 我会发布我的完整代码,这样你们就可以帮我了。请参

我有两个表
tblCompany
tblProduct
。 我想在数据库中添加详细信息,我成功地做到了这一点。 我想通过
@foreach
在网格中显示此详细信息,但在将ListBox值
GetCompanyList()
和网格
GetProductDetails()
的数据从同一控制器显示到同一视图时发生冲突

我尝试了很多方法在网格中显示数据,并浏览了may站点,所有站点都使用单独的控制器和视图进行解释,但我希望在单个控制器和视图中显示数据。我正在使用实体框架

我会发布我的完整代码,这样你们就可以帮我了。请参见随附的屏幕截图以获取输出

输出屏幕截图

ProductDBController.cs

using MVC.Models;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MVC.Controllers
{
    public class ProductDBController : Controller
    {
        ProductDBEntities PDBE = new ProductDBEntities();

        //
        // GET: /ProductDB/Index ==> ProductDBView

        public ActionResult Index(ProductDBModel PDBM)
        {
            PDBM.CompanyNameList = GetCompanyList();
            PDBM.ProductDetails = GetProductDetails();

            return View("ProductDBView", PDBM);
        }

        public ActionResult AddCompanyName(tblCompany tC, string action)
        {
            if (action == "Add")
            {
                PDBE.tblCompanies.Add(tC);
                PDBE.SaveChanges();
            }
            return RedirectToAction("Index");
        }

        public ActionResult AddProductDetails(tblProduct tP, string action)
        {
            if (action == "Add")
            {
                PDBE.tblProducts.Add(tP);
                PDBE.SaveChanges();
            }
            return RedirectToAction("Index");
        }

        public SelectList *GetProductDetails()
        {
            List<GetProductDetails_Vw> Vw = PDBE.GetProductDetails_Vw.ToList();
            return new SelectList(Vw);
        }

        public SelectList GetCompanyList()
        {
            tblCompany tC = new tblCompany();
            tC.CompanyID = 0;
            tC.CompanyName = "Select";

            List<tblCompany> li = PDBE.tblCompanies.ToList();
            li.Insert(0, tC);

            return new SelectList(li, "CompanyID", "CompanyName");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MVC.Models
{
    public class ProductDBModel
    {
        public int CompanyID { get; set; }
        public string CompanyName { get; set; }
        public SelectList CompanyNameList { get; set; }
        public int ProductID { get; set; }
        public string ProductName { get; set; }
        public string ProductDescription { get; set; }
        public int ProductPrice { get; set; }
        public SelectList ProductDetails { get; set; }
        public IEnumerable<object> GetProductDetails_Vw { get; set; }
    }
}
使用MVC.Models;
使用制度;
使用System.Collections.Generic;
使用系统配置;
使用系统数据;
使用System.Data.SqlClient;
使用System.Linq;
使用System.Web;
使用System.Web.Mvc;
命名空间MVC.Controllers
{
公共类ProductDBController:控制器
{
ProductDBEntities PDBE=新的ProductDBEntities();
//
//获取:/ProductDB/Index==>ProductDBView
公共行动结果索引(ProductDBModel PDBM)
{
PDBM.CompanyNameList=GetCompanyList();
PDBM.ProductDetails=GetProductDetails();
返回视图(“ProductDBView”,PDBM);
}
公共操作结果AddCompanyName(tblCompany tC,字符串操作)
{
如果(操作==“添加”)
{
PDBE.tblCompanies.Add(tC);
PDBE.SaveChanges();
}
返回操作(“索引”);
}
公共操作结果AddProductDetails(TBLPProduct tP,字符串操作)
{
如果(操作==“添加”)
{
PDBE.tblProducts.Add(tP);
PDBE.SaveChanges();
}
返回操作(“索引”);
}
公共选择列表*GetProductDetails()
{
List Vw=PDBE.GetProductDetails_Vw.ToList();
返回新的选择列表(Vw);
}
public SelectList GetCompanyList()
{
tblCompany tC=新tblCompany();
tC.CompanyID=0;
tC.CompanyName=“选择”;
List li=PDBE.tblCompanies.ToList();
li.插入(0,tC);
返回新的选择列表(li,“CompanyID”,“CompanyName”);
}
}
}
ProductDBModel.cs

using MVC.Models;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MVC.Controllers
{
    public class ProductDBController : Controller
    {
        ProductDBEntities PDBE = new ProductDBEntities();

        //
        // GET: /ProductDB/Index ==> ProductDBView

        public ActionResult Index(ProductDBModel PDBM)
        {
            PDBM.CompanyNameList = GetCompanyList();
            PDBM.ProductDetails = GetProductDetails();

            return View("ProductDBView", PDBM);
        }

        public ActionResult AddCompanyName(tblCompany tC, string action)
        {
            if (action == "Add")
            {
                PDBE.tblCompanies.Add(tC);
                PDBE.SaveChanges();
            }
            return RedirectToAction("Index");
        }

        public ActionResult AddProductDetails(tblProduct tP, string action)
        {
            if (action == "Add")
            {
                PDBE.tblProducts.Add(tP);
                PDBE.SaveChanges();
            }
            return RedirectToAction("Index");
        }

        public SelectList *GetProductDetails()
        {
            List<GetProductDetails_Vw> Vw = PDBE.GetProductDetails_Vw.ToList();
            return new SelectList(Vw);
        }

        public SelectList GetCompanyList()
        {
            tblCompany tC = new tblCompany();
            tC.CompanyID = 0;
            tC.CompanyName = "Select";

            List<tblCompany> li = PDBE.tblCompanies.ToList();
            li.Insert(0, tC);

            return new SelectList(li, "CompanyID", "CompanyName");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MVC.Models
{
    public class ProductDBModel
    {
        public int CompanyID { get; set; }
        public string CompanyName { get; set; }
        public SelectList CompanyNameList { get; set; }
        public int ProductID { get; set; }
        public string ProductName { get; set; }
        public string ProductDescription { get; set; }
        public int ProductPrice { get; set; }
        public SelectList ProductDetails { get; set; }
        public IEnumerable<object> GetProductDetails_Vw { get; set; }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Mvc;
名称空间MVC.Models
{
公共类ProductDBModel
{
public int CompanyID{get;set;}
公共字符串CompanyName{get;set;}
公共选择列表公司名称列表{get;set;}
public int ProductID{get;set;}
公共字符串ProductName{get;set;}
公共字符串ProductDescription{get;set;}
public int ProductPrice{get;set;}
public SelectList产品详细信息{get;set;}
公共IEnumerable GetProductDetails_Vw{get;set;}
}
}
ProductDBView.cshtml

@model MVC.Models.ProductDBModel
@{
    ViewBag.Title = "Product Dashboard";
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Product Dashboard</title>
</head>
<body>
    <div>
        <table style="width:100%">
            <tr>
                <td style="width:30%">
                    @using (Html.BeginForm("AddCompanyName", "ProductDB", FormMethod.Post))
                    {
                        <table>
                            <tr>
                                <td>
                                    Company Name
                                </td>
                                <td>
                                    :
                                </td>
                                <td>
                                    @Html.TextBoxFor(m => m.CompanyName)
                                </td>
                            </tr>
                            <tr>
                                <td colspan="3">
                                    <br />
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    @*<input type="button" value="Add" onclick="location.href='@Url.Action("AddCompanyName", "ProductDB")'" />*@
                                    <input type="submit" value="Add" name="action" />
                                </td>
                                <td></td>
                                <td>
                                    <input type="button" value="Clear" name="action" />
                                </td>
                            </tr>
                        </table>
                    }
                </td>
                <td style="width:70%">
                    @using (Html.BeginForm("AddProductDetails", "ProductDB", FormMethod.Post))
                    {
                        <div>
                            <table>
                                <tr>
                                    <td>
                                        Company Name
                                    </td>
                                    <td>
                                        :
                                    </td>
                                    <td>
                                        @Html.DropDownListFor(m => m.CompanyID, Model.CompanyNameList)
                                    </td>
                                    <td>
                                        Product Name
                                    </td>
                                    <td>
                                        :
                                    </td>
                                    <td>
                                        @Html.TextBoxFor(m => m.ProductName)
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        Product Description
                                    </td>
                                    <td>
                                        :
                                    </td>
                                    <td>
                                        @Html.TextAreaFor(m => m.ProductDescription)
                                    </td>
                                    <td>
                                        Product Price
                                    </td>
                                    <td>
                                        :
                                    </td>
                                    <td>
                                        @Html.TextBoxFor(m => m.ProductPrice)
                                    </td>
                                </tr>
                                <tr>
                                    <td colspan="3">
                                        <br />
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <input type="submit" value="Add" name="action" />
                                    </td>
                                    <td></td>
                                    <td>
                                        <input type="button" value="Clear" name="action" />
                                    </td>
                                </tr>
                            </table>
                        </div>
                    }
                </td>
            </tr>
        </table>
    </div>
    <hr />
    <div>
        <table>
===========================================================================
            @foreach (var item in Model.ProductDetails)
            {
                <tr>
                    <td>@Html.DisplayFor(modelItem => Model.ProductID)</td>
                    <td>@Html.DisplayFor(modelItem => Model.CompanyName)</td>
                    <td>@Html.DisplayFor(modelItem => Model.ProductName)</td>
                    <td>@Html.DisplayFor(modelItem => Model.ProductDescription)</td>
                    <td>@Html.DisplayFor(modelItem => Model.ProductPrice)</td>
                </tr>
            }
===========================================================================
        </table>
    </div>
</body>
</html>
@model MVC.Models.ProductDBModel
@{
ViewBag.Title=“产品仪表板”;
布局=空;
}
产品仪表板
@使用(Html.BeginForm(“AddCompanyName”、“ProductDB”、FormMethod.Post))
{
公司名称
:
@Html.TextBoxFor(m=>m.CompanyName)

@**@ } @使用(Html.BeginForm(“AddProductDetails”、“ProductDB”、FormMethod.Post)) { 公司名称 : @DropDownListFor(m=>m.CompanyID,Model.CompanyNameList) 品名 : @Html.TextBoxFor(m=>m.ProductName) 产品说明 :