如何仅更新模型的一个属性

时间:2010-06-29 14:11:02

标签: asp.net-mvc

我的viewmodel有一个名为Recipient的属性。这有一个名为MobileNumber的属性

我在MVC 2中尝试这个:

UpdateModel(viewmodel, new[] { "Recipient_MobileNumber" }); // I  expected this to work

我也试过“Recipient.MobileNumber”

2 个答案:

答案 0 :(得分:1)

尝试:

UpdateModel(viewmodel.Recipient, new[] { "MobileNumber" });

您的问题是您使用字符串[]包含作为视图数据表达式,假设在对象图形周围跳转以模拟绑定您需要的内容。

UpdateModel无法正常工作。这些字符串只是用作属性的过滤器。

答案 1 :(得分:0)

我认为是这样的:

public ActionResult Edit(int id /* id of recipient? */, FormCollection formValues)
{
    var viewmodel = GetViewModel(id);
    viewmodel.Recipient.ModileNumber = formValues["Recipient.MobileNumber"];
}