我想在视图中显示一个计算字段,所以我尝试创建一个这样的viewmodel:
set prompt \033[0;32m(gdb) \033[0m
它给了我一个错误所以我改变了构造函数:
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;
}
}
}
但是现在当我构建项目时,它会创建一个名为“TestViewModels”的表,因此我无法访问Tests表中的数据。
我认为viewmodel不应该有id,但如果不存在,脚手架就不会生成控制器。
使用视图模型在视图中显示计算字段的正确方法是什么?
答案 0 :(得分:2)
我可以在不使用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);
}
}
}
}
请注意,计算字段没有set方法。