1
我要顯示在視圖中的計算的字段,所以我試圖創建這樣一個視圖模型:如何在ASP.NET MVC中使用視圖模型來顯示計算字段?
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,但是如果它不支持,scaffolder不會生成控制器。
使用視圖模型在視圖中顯示計算字段的正確方法是什麼?
您的視圖模型不應該包含'Test test',所有的視圖模型都需要一個無參數的構造函數,否則它們不會綁定在回發之後。你的視圖模型也應該放在一個單獨的文件夾中(比如說「ViewModels」)。在您的控制器方法中,您獲取數據模型,初始化視圖模型的新實例並將數據模型屬性映射到該模型,然後將視圖模型返回到視圖。 –
而_「它給了我一個錯誤」_ - 什麼錯誤? –
錯誤表示models.Test是一種類型,但它的使用方式類似於變量 –