ASP.NET MVC:如何使用列表将复杂对象发布到服务器以进行更新(使用/不使用FormCollection)

时间:2010-11-08 14:50:57

标签: asp.net-mvc list post

我已经看到这个问题在SO上发布了几次,但与我的情况完全不同。如果这是重新发布的话,我很抱歉。

我有以下复杂的对象:

public class UserProfile
{
    public Education education { get; set; }
    // 3 other properties irrelevant to question b/c not able to be updated
}

教育课程如下:

public class Education
{
    public List<Certification> certifications { get; set; }
    public List<Degree> degrees { get; set; }
}

认证课程如下:

public class Certification
{
    public int yearCertified { get; set; }
    public DateTime expirationDate { get; set; }
}

Degree类看起来类似于Certification类。在我的用户配置文件的编辑(更新)视图页面上,我允许用户动态添加他/她想要的度数和认证。这意味着我想将一个Certification和Degree对象列表发送到我的控制器中的Update方法。

我知道使用MVC发布简单对象很容易,但是尝试为Update发布复杂对象,尤其是使用其他对象的List时,会有点棘手。

任何人都可以帮助我查看我的视图和控制器应该是什么样的吗?我正在使用MVC 1.0。

谢谢。

1 个答案:

答案 0 :(得分:-1)

我正在使用类似的东西,我使用模型和FormCollection的组合解决了。

假设您的行动签名是:

[AcceptVerbs("Post")]
public ActionResult Edit(Education edu, FormCollection formColl)
{
  var tmp = formColl;
  return view...
}

我在var tmp上设置了一个断点,验证框架填充了哪些属性,然后使用FormCollection中发布的变量来设置其余的。

乖乖有更好的方法可以解决这个问题,但这可以用来帮助你解决问题。

此致

Thabet