gpt4 book ai didi

asp.net-mvc-3 - 使用 ViewModel 类时如何调用 UpdateModel?

转载 作者:行者123 更新时间:2023-12-01 11:56:48 24 4
gpt4 key购买 nike

在 MVC3 中,在 View 中显示模型属性的默认方式似乎是这样的:

@Html.DisplayFor(model => model.Title)

如果您的模型与您的对象完全匹配,这就可以正常工作。但是,如果您定义自定义 ViewModel,例如在 NerdDinner tutorial

public class DinnerFormViewModel {

// Properties
public Dinner Dinner { get; private set; }
public SelectList Countries { get; private set; }

// Constructor
public DinnerFormViewModel(Dinner dinner) {
Dinner = dinner;
Countries = new SelectList(PhoneValidator.AllCountries, dinner.Country);
}
}

那么您的 DisplayFor 代码将如下所示:

@Html.DisplayFor(model => model.Dinner.Title)

这意味着表单项的名称是 Dinner.Title 而不仅仅是 Title,因此如果您在 Action 代码中调用 UpdateModel , MVC 不会“看到”更新您的 Dinner 类所需的属性。

对于 MVC3 中的这种情况,是否有处理 ViewModel 的标准方法?

最佳答案

为 UpdateModel 方法使用 'prefix' 参数

UpdateModel(model.Dinner, "晚餐");

如果你只需要更新指定的属性——使用这样的东西

UpdateModel(model.Dinner, "Dinner", new []{"Title"});

关于asp.net-mvc-3 - 使用 ViewModel 类时如何调用 UpdateModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6398055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com