2016-03-31 53 views
0

我有以下的實體,我在我的asp.net MVC應用程序管理一個非常複雜的模型的最佳方法是什麼?

public class USERS{ 
     public int PK { get; set; } // Primary key 
     public string Username { get; set; } 
     public string Password { get; set; } 
     public int FK_PEOPLE { get; set; } //Foreign key to table PEOPLE 
     public PEOPLE Person { get; set; } // The very PEOPLE property 
     ...10-15 additional fields, including List<SomeEntity>, etc. 
} 

爲模型的使用和這裏是階級的人

public class PEOPLE{ 
     public int PK { get; set; } // Primary key 
     public string Name { get; set; } 
     public string Surname { get; set; } 
} 

當我送USERS反對我的視圖,然後我獲得所有數據,並以一種形式顯示所有內容。一切安好。我可以看到所有的數據。爲了使事物更加花哨,我在Partial View中顯示PEOPLE屬性。

當我在我的HttpPost Action中取回模型時出現問題。我管理(使用HiddenFor)獲取USERS.PK和USERS.FK_PEOPLE,但USERS.Person實體始終爲空。

我試過[Bind(Prefix =「USERS」)]但它沒有幫助。即使這樣的溶劑有效,我是否應該爲我的模型中的每個屬性都做這件事?我是否真的必須手動修復每個屬性的所有綁定?這將永遠..必須有一個更好的辦法讓我的產品型號齊全,至少我把它在HTTPGET行動..

Gratefull所有幫助我能:)

PS:我知道,關於模型綁定有很多線程,但我不認爲我有一個綁定問題。我想找到一種方法來「避免」綁定。

+0

如果它沒有綁定,那麼你的觀點是錯誤的,你**做**有_binding problem_。展示下! (除非你將'HtmlFieldPrefix'作爲'additionalViewData'傳遞,使用'EditorTemplate') –

+0

但是你真的想把這整個模型發回嗎? –

+0

我可能會創建一個ViewModel,它只具有需要在某種平面視圖中顯示的屬性,因此您沒有太多嵌套的複雜對象。 –

回答

0

信用評價:@StephenMuecke

我在使用我的PartialView錯誤。溶劑是用它作爲EditorTemplate。 所以,這個工程:

<div class="form-group"> 
     @Html.EditorFor(m => m.PERSON) 
    </div> 

這不起作用:

<div class="form-group"> 
     @{ Html.RenderPartial("~/Views/PartialViews/Person/Index.cshtml", Model.PERSON); } 
    </div> 

最後,我不得不做的是我的PartialView重命名爲PERSON.cshtml和下運動吧〜/查看/共享/編輯模板/

非常感謝!

相關問題