3

我正在開發我在Asp中的第一個應用程序。我正在使用環境Asp.NET MVC 3. 我有一個控制器具有單個參數的操作。該參數的類型是一個複雜的對象。bindmodel vs createmodel asp mvc 3

public ActionResult MyAction(ComplexObj obj) { 
    //TODO: using obj 
} 

我正在使用ModelBinder類。但我不確定是否應該覆蓋函數或函數BindModel函數或CreateModel之一。

這兩個函數之間的區別是什麼,以及何時由rooter使用它們。

謝謝!

+0

爲什麼你想要一個自定義模型聯編程序? – VJAI

回答

6

這兩個函數之間的區別是什麼,當它們是 被rooter完全使用。

BindModel是做模型的結合過程中的所有工作,在路上,它調用CreateModel方法來提供基於傳遞類型模型的實例的主要方法。該CreateModel方法檢查的模式類型無論是dictionarylist或一個簡單的模型,最後通過調用返回一個實例,

Activator.CreateInstance(typeToCreate); 

通常你必須去重寫BindModel方法,除非你說你的要求,這是難以說出哪一個要重寫。如果你所關心的只是重寫模型實例的創建方式,那麼你必須去尋找CreateModel

+1

想你的答案。我試着用「F11」進入方法BindModel。這是不可能的,因爲我沒有執行。你可以理解我是C#中的一個begginer: - /我如何通過我自己發現這些有用的信息(CreateModel由BindModel調用)? – minchiya