页面使用model绑定,如果页面有下拉框之类的值(需要从数据库取),但是每次Post的时候,都要重新赋值,导致额外的开销,有没有好的方法,像webform里加载一次,第2次默认从viewState还原????就是从数据库取一次值,绑定到DropDownList,后面的表单提交或者刷新,把DropDownListFor值恢复回来,而不用在去数据库查询???
解决方案 »
- 关于显示库里图片
- 获取页面传来的值的问题.
- 谁知道怎么解决URL重写时的POSTBACK问题啊
- System.Net.WebRequest.Create(Url);防火墙要开设哪些端口?
- 新闻或论坛回帖部分用什么数据类型更好?二进制还是利用varchar保存html文件?如何实现的?
- 奇了怪了,为什么分页不能点呢?(VB.NET)
- 服务器端如何获得客户端的title
- 如何用Treeviewer创建树型目录!与csdn的导航栏相似!最后附代码说明
- 使用Response.BinaryWrite()浏览二进制文件为什么显示乱码(word文档)图片和txt文件显示正常
- 初学asp.net,看别人的系统源码时,发现不少问题不懂?请各位帮帮忙,问题都很容易!
- 那位vb和c#都懂的好友帮我用C#翻译下
- RTX二次开发
数据是保存在Model里,但是Post之后,这个Model对象值没有被保存。需要重新去查询
[OutputCache(CacheProfile = "ProcessInfoCache")]
public ActionResult Welcome()
{
ViewData["now"] = DateTime.Now.ToString();
return View();
}
-------------------------
View:
<span>@ViewData["now"]</span>
------------------------------
web.config:
<system.web>
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<clear/>
<add name="ProcessInfoCache" duration="10" enabled="true" varyByParam="*" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>
</system.web>
-----------------------------
这个例子上面的时间,至少10秒才会更新一次,如果你不停的刷就可以看出效果
<td>
<%=Html.DropDownList("LivingCountry", ViewData["LivingCountryViewData"] as IEnumerable<SelectListItem>, "--select one--")%>
<%=Html.ValidationMessage("LivingCountryV")%></td>cotroller:
DataContext dc = new DataContext();//LINQ TO SQL
#region LivingCountry dropdownlist status
if (Request.Form["LivingCountry"].Trim().ToString() != "")
{
var LivingCountryitem = from c in dc.DTCountries
select new SelectListItem { Text = c.CountryName, Value = c.CountryName, Selected = (c.CountryName == Request.Form["LivingCountry"].Trim().ToString()) };
ViewData["LivingCountryViewData"] = LivingCountryitem;
}
else
{
ViewData["LivingCountryViewData"] = from c in dc.DTCountries
select new SelectListItem { Text = c.CountryName, Value = c.CountryName, };
}
#endregion
要避免刷新被重新初始化的话,直接在该页面上使用Viewstate。也有另一个方法就是保存在CACHE里面。
这都嫌麻烦的话就不要用mvc了