用于创建和更新操作的Asp.net ViewModel



在ASP.NET MVC应用程序中,每个控制器操作都有不同的ViewModel,还是所有操作都有共享的ViewModel。

例如,如果我有一个具有List和Create操作的Users控制器,我应该有一个UserViewModel,还是应该有CreateUserViewModel和ListUsersViewModel?

由于列出所有用户和创建/编辑用户是不同的事情,您可能需要两个不同的视图。但是,您可以在创建用户和编辑用户之间创建和共享编辑模型/视图。

如果它们几乎是相同的属性,那么可以共享。如果没有,则创建2。老实说,我通常会分享。

这取决于您在视图中需要什么信息。如果他们使用完全相同的信息,那么共享ViewModel是可以的。如果其中一个具有与另一个相同的所有信息,再加上更多信息,那么您可以从另一个继承一个信息,如下所示:

public class ListViewModel
{
    public string Username { get; set; }
    public string Email { get; set; }
}
public class CreateViewModel : ListViewModel
{
    public bool AcceptedTOA { get; set; }
}

通过这样的操作,您可以在创建视图中访问所有三个值,但在列表视图中只能访问UsernameEmail

编辑:正在添加更多选项。。。

您也可以将它们放在彼此内部,而不是继承,例如

public class CreateViewModel
{
    public ListViewModel ListViewModel { get; set; }
    public bool AcceptedTOA { get; set; }
}

然后在你看来,你会像。。。

@Model.ListViewModel.Username

相关内容

  • 没有找到相关文章

最新更新