首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.net ModelView方法

Asp.net ModelView方法
EN

Stack Overflow用户
提问于 2013-07-03 16:31:34
回答 1查看 69关注 0票数 0

我正在尝试用asp.net MVC4(剃刀语法)和数据库优先的方法构建一个单页面的应用程序。您可以看到我的应用程序的一个简单模型,如下所示。

代码语言:javascript
复制
-OPPORTUNITY<br />
--OPPORTUNITY DETAIL(1)<br />
---Seleted Solution-1<br />
---Seleted Solution-2<br />
---Seleted Solution-3<br />
--OPPORTUNITY DETAIL(2)<br />
---Seleted Solution-1<br />
---Seleted Solution-2<br />
--OPPORTUNITY DETAIL(3)<br />
---Seleted Solution-1<br />
---Seleted Solution-2<br />
---Seleted Solution-3<br />

我在一个表格中有很多解决方案,并且有很多参数。在一个页面中显示所有信息的最佳方式是什么?我正在尝试使用创建一个新的视图模型。但我不确定它的性能,因为它从表中获取所有数据。

这是我的模型类..

OPPORNUTIES类

代码语言:javascript
复制
namespace CRM_V1.Models
{
    using System;
    using System.Collections.Generic;

    public partial class CRM_OPPORTUNITIES
    {
        public CRM_OPPORTUNITIES()
        {
            this.CRM_OP_ATTACHMENTS = new HashSet<CRM_OP_ATTACHMENTS>();
            this.CRM_OPP_DETAILS = new HashSet<CRM_OPP_DETAILS>();
        }

        public decimal ID { get; set; }
        public Nullable<decimal> COMPANYID { get; set; }
        public Nullable<decimal> SEGMENTID { get; set; }
        public Nullable<decimal> SEGMENTDETAILID { get; set; }
        public Nullable<decimal> CUSTOMERID { get; set; }
        public Nullable<decimal> PROJECTID { get; set; }
        public Nullable<decimal> STATUSID { get; set; }
        public Nullable<System.DateTime> CRDATE { get; set; }
        public Nullable<decimal> CRUSER { get; set; }
        public string CODE { get; set; }
        public Nullable<System.DateTime> MDDATE { get; set; }
        public Nullable<decimal> MDUSER { get; set; }
        public Nullable<decimal> IS_VALID { get; set; }
        public Nullable<decimal> OWNERID { get; set; }
        public Nullable<decimal> PRJCTGRPID { get; set; }
        public Nullable<decimal> ORDERSUMMARY { get; set; }

        public string NOTES { get; set; }

        public virtual CRM_COMPANIES CRM_COMPANIES { get; set; }
        public virtual CRM_CUSTOMERS CRM_CUSTOMERS { get; set; }
        public virtual ICollection<CRM_OP_ATTACHMENTS> CRM_OP_ATTACHMENTS { get; set; }
        public virtual CRM_OP_STATUS CRM_OP_STATUS { get; set; }
        public virtual ICollection<CRM_OPP_DETAILS> CRM_OPP_DETAILS { get; set; }
        public virtual CRM_SEGMENTS CRM_SEGMENTS { get; set; }
        public virtual CRM_SEGMENT_DETAILS CRM_SEGMENT_DETAILS { get; set; }
        public virtual CRM_PROJECTS CRM_PROJECTS { get; set; }
        public virtual CRM_PRJCT_GROUPS CRM_PRJCT_GROUPS { get; set; }
    }
}

DETAIL类

代码语言:javascript
复制
namespace CRM_V1.Models
{
    using System;
    using System.Collections.Generic;

    public partial class CRM_OPP_DETAILS
    {
        public CRM_OPP_DETAILS()
        {
            this.CRM_OPP_DETAILS1 = new HashSet<CRM_OPP_DETAILS>();
            this.CRM_REVENUE_PLAN = new HashSet<CRM_REVENUE_PLAN>();
            this.CRM_SOLUTION_DISTRIBUTION = new HashSet<CRM_SOLUTION_DISTRIBUTION>();
        }

        public decimal ID { get; set; }
        public string CODE { get; set; }
        public Nullable<decimal> OPPID { get; set; }
        public Nullable<decimal> ORDERAMOUNT { get; set; }
        public Nullable<System.DateTime> ORDERDATE { get; set; }
        public string ORDERCURRENCY { get; set; }
        public Nullable<decimal> REVENUEAMOUNT { get; set; }
        public Nullable<System.DateTime> REVENUEDATE { get; set; }
        public Nullable<decimal> REVENUECURRENCY { get; set; }
        public Nullable<short> MARGINRATE { get; set; }
        public Nullable<System.DateTime> TARGETDATE { get; set; }
        public Nullable<short> POSSIBILITY { get; set; }
        public Nullable<decimal> STATUSID { get; set; }
        public string NOTES { get; set; }
        public Nullable<System.DateTime> CRDATE { get; set; }
        public Nullable<decimal> CRUSER { get; set; }
        public Nullable<System.DateTime> MDDATE { get; set; }
        public Nullable<decimal> MDUSER { get; set; }
        public Nullable<decimal> IS_VALID { get; set; }
        public Nullable<decimal> TYPEID { get; set; }
        public Nullable<decimal> OWNERID { get; set; }
        public Nullable<decimal> AFFLDETAILID { get; set; }
        public Nullable<decimal> REVENUEDOLLAR { get; set; }
        public Nullable<decimal> ORDERDOLLAR { get; set; }
        public Nullable<decimal> ISHAVEREVPLAN { get; set; }
        public Nullable<decimal> SOLPLANDONE { get; set; }
        public Nullable<decimal> SOLUTIONID { get; set; }
        public string PAFDCANO { get; set; }
        public Nullable<decimal> DCAKOD { get; set; }

        public virtual CRM_OP_DETAIL_STATUS CRM_OP_DETAIL_STATUS { get; set; }
        public virtual CRM_OPP_DETAIL_TYPE CRM_OPP_DETAIL_TYPE { get; set; }
        public virtual CRM_OPPORTUNITIES CRM_OPPORTUNITIES { get; set; }
        public virtual ICollection<CRM_OPP_DETAILS> CRM_OPP_DETAILS1 { get; set; }
        public virtual CRM_OPP_DETAILS CRM_OPP_DETAILS2 { get; set; }
        public virtual ICollection<CRM_REVENUE_PLAN> CRM_REVENUE_PLAN { get; set; }
        public virtual ICollection<CRM_SOLUTION_DISTRIBUTION> CRM_SOLUTION_DISTRIBUTION { get; set; }
    }
}

解决方案分布类

代码语言:javascript
复制
namespace CRM_V1.Models
{
    using System;
    using System.Collections.Generic;

    public partial class CRM_SOLUTION_DISTRIBUTION
    {
        public CRM_SOLUTION_DISTRIBUTION()
        {
            this.CRM_SOLUTION_VENDOR = new HashSet<CRM_SOLUTION_VENDOR>();
        }

        public decimal ID { get; set; }
        public Nullable<decimal> OPPDETAILID { get; set; }
        public Nullable<decimal> SOLUTIONID { get; set; }
        public Nullable<decimal> CRUSER { get; set; }
        public Nullable<System.DateTime> CRDATE { get; set; }
        public Nullable<decimal> MDUSER { get; set; }
        public Nullable<System.DateTime> MDDATE { get; set; }
        public Nullable<decimal> AMOUNT { get; set; }
        public Nullable<decimal> IS_VALID { get; set; }
        public string CURRENCY { get; set; }
        public Nullable<decimal> AMOUNTDOLLAR { get; set; }
        public Nullable<decimal> MARGIN { get; set; }
        public Nullable<decimal> MARGINRATE { get; set; }
        public Nullable<decimal> DISTMARGIN { get; set; }
        public Nullable<decimal> VENDORID { get; set; }
        public Nullable<System.DateTime> VENDORDATE { get; set; }

        public virtual CRM_OPP_DETAILS CRM_OPP_DETAILS { get; set; }
        public virtual CRM_SOLUTIONS CRM_SOLUTIONS { get; set; }
        public virtual CRM_VENDORS CRM_VENDORS { get; set; }
        public virtual ICollection<CRM_SOLUTION_VENDOR> CRM_SOLUTION_VENDOR { get; 

我开始创建一个MODELVIEW,以显示机会和相关的详细信息,但我失败了?

下面是我的模型视图类:

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CRM_V1.Models;

namespace CRM_V1.ViewModels
{
    public class OppViewModel
    {

        public List<CRM_OPPORTUNITIES> OppList { get; set; }
        public List<CRM_OPP_DETAILS> OppDetailList { get; set; }


    }
}

我的控制器操作

代码语言:javascript
复制
public ActionResult addingDetailNew(decimal id = 0)
        {
            CRM_OPPORTUNITIES crm_opportunities = db.CRM_OPPORTUNITIES.Find(id);


            var viewModel2 = new OppViewModel
            {
                viewModel2 = db.CRM_OPPORTUNITIES.ToList()

            };



            if (crm_opportunities == null)
            {
                return HttpNotFound();
            }
            return View(viewModel2);
        }

最后是我的观点。

代码语言:javascript
复制
@model CRM_V1.ViewModels.OppViewModel

@{
    ViewBag.Title = "addingDetailNew";
}

<h2>addingDetailNew</h2>

@Html.DisplayFor(model => model.NOTES)

但我无法获取备注字段。我的第二个问题是如何获得像model.CUSTOMERS.NAME这样的连接字段。?

问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-03 16:39:22

你必须循环你的ViewModel的OppList属性,你必须更新你的视图:

代码语言:javascript
复制
@model CRM_V1.ViewModels.OppViewModel

@{
    ViewBag.Title = "addingDetailNew";
}

<h2>addingDetailNew</h2>

@foreach(CRM_OPPORTUNITIES opportunity in model.OppList) {
    <h3>@opportunity.NOTES</h3>
    @foreach(CRM_OPP_DETAILS detail in opportunity.CRM_OPP_DETAILS){
         <p>@detail.CODE</p>
         <!-- etc... if you want to retrieve more informations -->
    }
}

在此之后,您可以继续检索所需的对象/属性。

希望这是帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17443220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档