【发布时间】:2016-08-30 21:58:41
【问题描述】:
我有两个 db 类,一个是 Tasks,第二个是 AssignedTasks,我想在管理员创建任务时在一个视图中使用它,然后他/她并行分配任务,尽管首先创建视图,然后将任务分配给员工,但是我不知道该怎么做,因为我是 asp.net 的新手,任何人都可以通过示例代码帮助我吗?我的代码如下
public partial class Task
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Task()
{
this.AssignedTasks = new HashSet<AssignedTask>();
}
public int TaskId { get; set; }
public string TaskName { get; set; }
public System.DateTime TaskDeadLine { get; set; }
public int TaskNumber { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<AssignedTask> AssignedTasks { get; set; }
}
分配任务的代码是
public partial class AssignedTask
{
public int AssignId { get; set; }
public int AccountId { get; set; }
public int TaskId { get; set; }
public virtual Account Account { get; set; }
public virtual Task Task { get; set; }
}
AssignedTask 类有任务的外键。
【问题讨论】:
-
您需要创建一个 view model 类,该类具有 view 所需的所有属性。然后将两个 DB 对象中的所有信息映射到 view model 并将 that 传递给您的视图。这是一个非常常见的初学者 MVC 问题,因此如果您需要更多关于该概念的说明,谷歌搜索视图模型将为您生成大量有用的信息。
-
另外请注意,您真的应该完全避免将 DB 类直接传递给视图,除非您知道自己在做什么 - 它为漏洞打开了大门,因为任何人都可以轻松更改任何POST 请求中类的属性(只需提交带有正确字段的表单以匹配属性名称)。
-
好的,这对您有帮助,谢谢您的关注 :)
标签: c# asp.net-mvc