我是asp.net mvc的新手,我找不到最好的方法:
我有一个带有下拉列表的表单。在控制器中,在填充表单时,我设置:
ViewBag.DDLCONTENT = ....
(并从数据库中获取);
如果我使用ajax在控制器中重新填充表单,ViewBag.DDLCONTENT
将变为空。那么我应该在不必再次调用数据库的情况下这样做吗?
如果我的问题不够明确,我可以发布完整的代码 谢谢
答案 0 :(得分:1)
所以我应该在不必再次调用数据库的情况下这样做吗?
再次调用数据库。 DropDownList仅将所选值发送到服务器。或者,如果您想避免调用它,您可以将这些值存储在缓存中。但是如果数据库中的数据发生变化,你可能还是想要调用它来检索新数据。
答案 1 :(得分:0)
将下拉列表放在div中,然后在重新填充表单之前克隆div。无论哪种方式,因为这是通过AJAX客户端完成的,所以您的解决方案需要来自客户端代码,例如javascript或jquery。
<div id="ddlClone">@Html.DropDownFor()</div>
<script type="text/javascript">
var cloneForLater = $("#ddlClone").clone(true);
</script>
达林确实对新数据提出了一个很好的观点。如果数据可能已过时,则应再次调用数据库。