【问题标题】:Create View with two ViewModels [closed]使用两个 ViewModel 创建视图 [关闭]
【发布时间】:2017-01-05 11:54:57
【问题描述】:

我正在使用 ASP.NET MVC 进行在线简历构建项目,让我告诉你,我对 MVC 不太熟悉。我有两个视图模型,一个用于有关经验的信息,另一个用于其他简历详细信息。基本上一个人可以有不止一种体验,也就是resumeVM和experienceVM是一对多的关系,我的视图模型是这样的;

public class ResumeVM
{

//some variables

public List<ExperienceVM> experience { get; set;}
}

public class ExperienceVM
{
//some experience details
}

现在的问题是如何创建视图以让用户输入尽可能多的体验。我想我可以使用 javascript 创建 UI,但我不知道如何将这些值存储到列表中并保存这些值相应表中的数据。有人可以快速说明如何进行吗?

【问题讨论】:

  • 可以先阅读一些关于 mvvm 或 mvc 的文章。 stackoverflow 不适合这类问题。
  • 嗨,对不起,没有。你要求给你写一篇文章来解释如何做某事。这不是 SO 的用途。在你的情况下,我们所能做的就是建议采取任何 mvc 主细节,比如 turorial,也许你会知道它是如何工作的。祝你好运。
  • 首先,我上过一些关于 MVC 的课程,并且确实看过一些文章。很抱歉,我没有要求像文章中那样解释它,我的问题是如何实现一对多关系中的观点。我试过了,但它不起作用,所以我想向你们寻求帮助。

标签: c# asp.net-mvc razor


【解决方案1】:

如果您在将 2 个模型发送到您的视图时遇到问题,它们有多种方式,一种是您所说的 ViewModel,如下所示:

public class ResumeVM
{
    public ResumeVM()
    {
        Resume = new List<Resume>();
        Experience = new List<Experience>();
    }
    public List<Resume> Resume { get; set; }
    public List<Experience> Experience { get; set; }

}

在您的 ViewModel 中创建模型列表并将它们填充到 factory 或您的 Controller 中并将它们与视图一起发送:

   public ActionResult Index()
    {
        ResumeVM _vm = new ResumeVM(); 
        Repository _repository = new Repository();

        //these repository methods will populate your lists 
        _vm.Resume = _repository.PopulateResume();
        _vm.Experience = _repository.PopulateExperice();

        return View("Index",_vm);
    }
【解决方案2】:

如果您需要在视图中显示更多模型,那么您可以创建 ViewModel - 一些模型和视图之间的东西,它们可以将许多模型堆叠到您的视图中

为了更好地理解 thisthis 的含义

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-28
    • 2010-11-27
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多