Asp.net MVC4多个模型1视图

时间:2013-07-19 15:15:34

标签: asp.net-mvc

所以我正在编写一个具有图像上传区域的应用程序..

我想做的是Dynamicallyi为要上传的文件构建路径。

用户将选择客户端,市场,项目和地点(所有这些都是单独的模型)

我想构建一个显示客户端的视图(下拉列表),市场(下拉列表)等等,然后我可以抓住这些值,将它们放在服务器下该名称的目录下...

我不知道如何组合我的模型将它们全部放入单个视图中,然后为每个下拉菜单创建一个局部视图(这是处理此问题的正确方法吗?)

任何人都可以帮忙吗? - 谢谢

编辑:

这就是我想你的想法,我可以投入Razor View(我会以某种方式传递所有这些)

@model OilNGasWeb.Models.UserProfiles
@model OilNGasWeb.Models.UserInfo
@model OilNGasWeb.Models.UserData
@model OilNGasWeb.Models.Users

然后下面的一些代码......那就是你和Hierarchie的关系?


我在想的是包含IEnumerable<>在模型中说主模型是用户

  

用户模型

[Table("Users")]
public class UserProfiles
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]

    public int UserId { get; set; }

    public string UserName { get; set; }

    public virtual ICollection<UserRoles> UsersRoless { get; set; }
    public virtual ICollection<UserInfo> UsersInfos { get; set; }
    public virtual ICollection<UserData> UsersDatas { get; set; }
    public virtual ICollection<Users> Userss { get; set; }

然后在用户的索引视图中为每个人做部分视图...

试着想出一个更好的概念(如果有的话)抱歉让问题不清楚

1 个答案:

答案 0 :(得分:3)

你不能有很多这样的模型,但你可以这样做:

public class RootModel
{
  public Ienumerable<UserProfile> Profiles { get; set; }

  public UserInfo User { get; set; }

  public Ienumerable<User> Users { get; set; }

  .
  .
}

然后将其传递给您的复杂视图。您可以通过提供方法的Html.Partial("X", Model)形式的模型属性将数据传递给部分视图。