在控制器中更改模型的属性值有什么更好的方法

时间:2010-09-19 06:18:40

标签: asp.net-mvc performance

在模型中更改单个值时,哪种方法更受欢迎?美学和性能方面。

看起来很干净(虽然将整个模型再次推到View的开销):

ModelState.Remove("Name");
guestResponse.Name = "John";
return View(guestResponse);

看起来高效:

ModelState["Name"] = new ModelState { Value = new ValueProviderResult("Paul", null, null) };                
return View();

如果更改模型状态字典是高性能的,可以这样做......

ModelState["Name"] = "George";

...我将在第一个代码(使用Removereturn View(guestResponse))上使用它,但不幸的是,ModelState需要使用ModelState和ValueProviderResult进行分配。它看起来很难看。

在控制器中更改模型的属性值时使用哪一个?

1 个答案:

答案 0 :(得分:0)

模型属性通常从请求值绑定。因此,如果我需要更改控制器操作中的模型值,我只需使用正确的请求字符串调用此操作,这样我就不必在控制器内部执行任何操作。但是要回答你的问题,这两种方法都会表现良好,你使用哪种方法并不重要。