【问题标题】:MVVM and ModelBinders in the ASP.NET MVC FrameworkASP.NET MVC 框架中的 MVVM 和 ModelBinders
【发布时间】:2009-08-14 11:58:02
【问题描述】:

我有一系列视图,每个视图都有自己的 ViewModel 类,其中包含他们需要展示自己的所有内容,例如:

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 的 Resource 属性,而不是 CreateResourceViewModel 本身。其他一切都只是用户的肉汁,他们正在更新的是资源类......

这在 MVC 框架中是否可行(即使它是 v2 CTP)?

谢谢大家

【问题讨论】:

    标签: asp.net-mvc mvvm modelbinders


    【解决方案1】:

    当然。使用:

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

    【讨论】:

    • 那么要么您发布的表单不包含默认模型绑定器实现资源所需的信息,要么您的表单键与您之前显示的演示模型不匹配。查看在 Firebug 或 Fiddler 中发布的表单。如果您无法找出问题所在,请在此处发布该问题和资源类型声明。
    • 啊哈!我手动将数据放入 html (Html.TextBox ("Name", Model.Resource.Name)),我将其更改为 Html.TextBox ("Resource.Name"),一切都很好。谢谢克雷格!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 2010-09-25
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多