Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为列表中的复杂类型创建视图初始化值_C#_Asp.net Mvc - Fatal编程技术网

C# 为列表中的复杂类型创建视图初始化值

C# 为列表中的复杂类型创建视图初始化值,c#,asp.net-mvc,C#,Asp.net Mvc,我在一个常见的问题中使用了这个答案。 这适用于编辑数据,但不适用于在需要立即向列表中添加复杂类型时创建数据 如果在控制器中执行创建操作,则应创建AssignSoftwareLicenseViewModel的实例,并创建ICollection设备的实例。之后,您必须创建SelectableDeviceViewModel的实例,并将其添加到集合中。然后将创建的AssignSoftwareLicenseViewModel返回到视图中 所有的文本框都创建得很好,帖子也能正常工作。但由于您创建了对象的实例

我在一个常见的问题中使用了这个答案。 这适用于编辑数据,但不适用于在需要立即向列表中添加复杂类型时创建数据

如果在控制器中执行创建操作,则应创建
AssignSoftwareLicenseViewModel
的实例,并创建
ICollection设备
的实例。之后,您必须创建
SelectableDeviceViewModel
的实例,并将其添加到集合中。然后将创建的
AssignSoftwareLicenseViewModel
返回到视图中

所有的文本框都创建得很好,帖子也能正常工作。但由于您创建了对象的实例,
LicenseId
在屏幕上的值为
0
。如果您还有一个
DateTime
属性,您将在屏幕上的文本框中获得
01-01-0001
作为默认值

如何删除这些值?我的显示属性现在没用了

样本日期时间:

[Display(Name = "Geboortedatum")]
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime BirthDay { get; set; }
示例创建

public ActionResult Create()
{
    AssignSoftwareLicenseViewModel vm = new AssignSoftwareLicenseViewModel();
    vm.Devices = new Collection<SelectableDeviceViewModel>();
    vm.Devices.Add(new SelectableDeviceViewModel());

    return View(vm);
}
public ActionResult Create()
{
AssignSoftwareLicenseViewModel vm=新的AssignSoftwareLicenseViewModel();
vm.Devices=新集合();
添加(新的SelectableDeviceViewModel());
返回视图(vm);
}

将您的模型属性声明为可为空的类型,您不应该有这个问题

public DateTime? BirthDay { get; set; }
public int? LicenseId { get; set; }

是的,但是我的数据库和ef代码首先被破坏了。我可以用viewmodel解决这个问题,但我想知道它是否可以用另一种方法解决。如果首先使用代码,您确实需要重新初始化数据库,这是一个问题吗?这对我来说不是一个真正的问题,但通过重新设计后端来修复ui问题是错误的。我想不创建viewmodel是不可能的