我想在视图中显示一个计算的字段,因此我尝试创建一个视图模型:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace Facturacion.Models
{
public class Test
{
public int testId { get; set; }
[Required]
public decimal price { get; set; }
}
public class TestViewModel
{
[Key]
public int testId { get; set; }
public Test test { get; set; }
public decimal price { get; set; }
public decimal calculated { get; set; }
public TestViewModel(Test test)
{
Test = test;
calculated = Test.price * 2;
}
}
}
它给了我一个错误,所以我更改了构造函数:
public TestViewModel(Test test)
{
var foo = test;
calculated = foo.price * 2;
}
但是现在,当我构建项目时,它创建了一个名为" TestViewModels"的表,因此我无法在测试表中访问数据。
我认为ViewModel不应该有ID,但是如果它不是脚手架不会生成控制器。
使用ViewModel在视图中显示计算字段的正确方法是什么?
我可以在不使用ViewModel
的情况下解决它namespace Facturacion.Models
{
public class Test
{
public int testId { get; set; }
[Required]
public decimal price { get; set; }
public decimal calculated
{
get
{
return (decimal)(price*2);
}
}
}
}
注意计算的字段没有设置方法。