如何在ASP.NET MVC中使用viewmodel来显示计算字段?

时间:2015-05-13 03:55:02

标签: c# asp.net-mvc viewmodel

我想在视图中显示一个计算字段,所以我尝试创建一个这样的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,但如果不存在,脚手架就不会生成控制器。

使用视图模型在视图中显示计算字段的正确方法是什么?

1 个答案:

答案 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方法。