[英]How to calculate a parameter between multiple models? asp.net MVC
我有多个模型,我正在尝试计算一个名为total的参数。 我是MVC的新手,并不确定如何做到这一点或在哪里(看到它不应该在视野中完成)。
我有这个参数我必须计算:
public class Bill
{
public int Total { get; set; }
}
通过使用这些参数:
public class Article
{
public int Price { get; set; }
public float Quantity { get; set; }
}
并且:
public class BillLine
{
public int DiscountValue { get; set; }
}
使用这3个值计算总数,但我不确定如何做到这一点。 该程序的工作方式如下:每个billLine可以有1篇文章,1个帐单可以有很多帐单行。
根据我的理解,我有以下代码:考虑Quantity
是指没有项目,它应该是Int和Price是浮动属性。 TotalArticlePrice
是计算属性。
public class Article
{
public float Price { get; set; }
public int Quantity { get; set; }
public float TotalArticlePrice
{
get
{
return Price * Quantity;
}
}
}
正如你所提到的那样,一条BillLine有一条条款,所以模型应该如下所示, Article
属性和FinalBillLinePrice
是计算出扣除FinalBillLinePrice
的价值
public class BillLine
{
public int DiscountValue { get; set; }
public Article Article { get; set; }
public float FinalBillLinePrice
{
get
{
return Article.TotalArticlePrice - DiscountValue;
}
}
}
最后,正如您所提到的,One Bill
可能有多个BillLine
,因此Model应该如下所示, Total
属性存储Total Bill Price。
public class Bill
{
public float Total
{
get
{
return BillLineList.Sum(x => x.FinalBillLinePrice);
}
}
public List<BillLine> BillLineList { get; set; }
}
如果我误解了任何事情请在评论中说明。
您需要通过组合所有三个类来创建ViewModel,并且您可以使用它轻松地进行所有计算。
要开始使用ViewModel,请参阅以下链接。
也许你的视图模型应该是这样的:
public class BillLine
{
public int DiscountValue { get; set; }
public Article Article {get; set; }
}
public class Bill
{
public List<BillLine> Lines { get; set;}
public int Total { get
{
int result;
foreach var line in Lines {
//Update result with your calculations
}
return result;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.