1

在我的输入表单上,我让用户选择一个状态。状态列表存储在数据库中(因为我们还不支持每个状态)。此列表很少更改。

所以我想用它RenderAction来呈现控件,仅仅是因为我不想将每个 ViewModel 的状态列表传递给视图。此操作的结果是下拉菜单。

由于这是一个输入控件,它需要有一个名称。因此,从我的主要观点来看,我将 RenderAction 称为如下:

@Html.RenderAction("GetStates", "Data", new { controlName = "states" });

路过controlName感觉不对。我觉得我在滥用RenderAction创建用户控件,并且@Html.Partial会更合适,另一方面,我不想将状态列表传递给,@Html.Partial因为该信息与演示问题更相关。

问题我应该坚持使用 RenderAction 并如上所述传递 controlName 吗?还是有更好的解决方案?

4

1 回答 1

0

将 controlname 作为参数传递并没有错。我会同意的。

此外,您从数据库中获得的状态列表。如果您在页面上多次显示此列表...将其存储在 TempData 中。如果存在于 tempdata 中,则检索并使用它来保存数据库命中。你甚至可以把它缓存得更高。

于 2012-07-24T21:55:57.213 回答