2009-08-14 75 views
6

我已經取得了一系列的意見,每個被輸入到有一個包含他們需要展示自己的一切,例如自己的ViewModel類:MVVM並在ASP.NET MVC框架ModelBinders

public class CreateResourceViewModel 
{ 
    public Project Parent { get; set; } 
    public SelectList Categories { get; set; } 
    public Resource Resource { get; set; } 
} 

此POST操作方法,我想使用應該是這樣的:

[AcceptVerbs (HttpVerbs.Post)] 
public ActionResult Create (Resource resource) 
{ 
    // Update code... 
} 

注意到,我唯一感興趣的對象是CreateResourceViewModel,而不是CreateResourceViewModel本身的資源屬性。其他的一切只是爲用戶的肉汁,他們正在更新的是資源類...

這是可能的MVC框架內(即使它是V2的CTP)?

謝謝全部

回答

14

當然。用途:

public ActionResult Create([Bind(Prefix="Resource")]Resource resource) 
+0

嗨,沒有工作 - 資源是在提交空... – Kieron 2009-08-14 13:14:51

+2

然後要麼你提交的表單不包含默認的模型綁定所需的信息兌現資源,或者您的形式鍵與您之前展示的演示模型不匹配。查看Firebug或Fiddler中發佈的表單。如果您無法弄清楚問題,請在此處發佈該資源類型聲明。 – 2009-08-14 13:29:16

+3

啊哈!我手動將數據放在html(Html.TextBox(「Name」,Model.Resource.Name))中,我將其更改爲Html.TextBox(「Resource.Name」),並且都很好。謝謝克雷格! – Kieron 2009-08-14 15:11:05