2

我是 asp.net mvc 的新手,我找不到最好的方法:

我有一个带有下拉列表的表单。在控制器中,在填充表单时,我设置:(
ViewBag.DDLCONTENT = ....并从数据库中获取);

如果我用 ajax 重新填充控制器中的表单,ViewBag.DDLCONTENT将变为空。那么我应该这样做而不必再次调用数据库吗?

如果我的问题不够清楚,我可以发布完整的代码
谢谢

4

2 回答 2

1

那么我应该这样做而不必再次调用数据库吗?

再次调用数据库。DropDownList 仅将选定的值发送到服务器。或者,如果您想避免调用它,您可以将这些值存储在缓存中。但是,如果数据库中的数据在两者之间发生变化,您可能无论如何都想调用它来检索新数据。

于 2012-09-20T09:45:20.303 回答
0

将下拉列表放在 div 中,然后在重新填充表单之前克隆 div。无论哪种方式,由于这是通过 AJAX 客户端完成的,因此您的解决方案将需要来自客户端代码,例如 javascript 或 jquery。

<div id="ddlClone">@Html.DropDownFor()</div>
<script type="text/javascript">
 var cloneForLater = $("#ddlClone").clone(true);
</script>

Darin 确实对新数据提出了很好的看法。如果数据可能已过时,则应再次调用数据库。

于 2012-09-20T09:45:09.600 回答