2013-07-19 81 views
1

所以我寫的是對圖片上傳區應用..Asp.net MVC4多模型1查看

我想這樣做是Dynamicallyi建立一個路徑爲要上傳的文件。

用戶會選擇一個客戶,市場,項目和地點(所有這些都是單獨的型號)

我想建一個觀點,即表現爲客戶端(下拉列表),市場(下拉)等等等等然後,我可以抓住這些值,將它們放在服務器下的名稱目錄下...

我不知道如何將我的模型合併到單個視圖中,然後創建局部視圖每個下拉菜單(這是正確的方式來處理這個?)

任何人都可以幫忙嗎? - 感謝

EDITS:

這裏是我想你換貨我可以扔進Razor視圖(得到安寧我通過他們的都好像是)

@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; } 

然後做局部視圖每個在用戶的索引視圖中...

嘗試到th一個更好的概念的墨水(如果有的話),製造的問題不清楚

+0

模型可以是分層的,那麼爲什麼不將其他模型添加爲根視圖模型的屬性呢? –

+0

@BrianMains你是什麼意思,像在視圖中:@ model og.UserProfiles,然後下一行像@ model og.UserRoles,然後@ model og.UserInfo ????? – Pakk

+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)形式的模型屬性將數據傳遞給部分視圖。

+0

好吧,謝謝,我很好奇,如果有更好的方法做到這一點。感謝您的迴應。同樣在一個無關的方面,如果你不介意,我可以使用相同的princible,實體框架將知道在哪裏存儲什麼數據(比如我使用這個概念進行編輯?) – Pakk

+0

只要所有的數據來自相同的上下文,您可以使用它進行編輯。但是,對象上下文僅適用於當前請求(除非將其存儲爲靜態,但之後還有其他問題),因此這取決於您的意思。您可以使用相同的委託人,但是如果您加載編輯表單,然後渲染,然後保存更改,則可能會稍微複雜一些,需要一些「關注」。我可以說的最好的事情就是給它一個鏡頭,如果它不起作用,就寫另一個問題:)它總是一個很好的學習體驗。 –