最新评论
ESON 2012-03-06 10:31
非常好!
其中给字段赋值的循环,我觉得遍历DataReader的列会对性能有所提高,代码如下:
[code=csharp]
for (int i = 0; i < reader.FieldCount;i++ )
{
PropertyInfo Property = tp.GetProperty(reader.GetName(i));
try
{
if (reader.GetValue(i) != DBNull.Value)
{
Property.SetValue(RowInstance, Convert.ChangeType(reader.GetValue(i), Property.PropertyType), null);
}
}
catch
{
continue;
}
}
[/code]
原因是当实体类的字段比较多,而查询的字段比较少时,会做一些无谓的循环判断。
monkey's 2011-08-31 11:14
老大!
用户请求一篇文章的时候,先看缓存服务器有没有,如果没有,直接从 数据库里取出来;如果有,取出缓存数据版本号,并从版本服务器上获取该文章真实版本号,如果一直,就使用缓存数据,如不一直,从数据库里取出文章数据,并 更新缓存
这句话 没看懂呀!什么叫取出版本号,并从版本服务器上获取该文章真实版本号 ????
解释一下吧!
三岔路 2010-12-08 09:35
还需要在配置文件中
<system.web>下加
<httpRuntime requestValidationMode="2.0" />
一线风 2010-11-26 17:28
这个好神奇,我刚见到,还以为见鬼了。
denli 2010-11-03 15:35
工厂RepositoryFactory:
这一部分不是看的很明白,可以提供源码至我的邮箱吗?
谢谢,denli8@163.com
denli 2010-11-02 11:55
VS2010做程序开发时,repositoryfactory如何进行代码的自动生成?
杜宏雷 2010-09-17 12:21
基本上RenderPartial()與RenderAction()這兩個方法非常相似,都是用來將UserControl(.ascx)嵌入到網頁上,並且可以讓網頁相同功能的區塊重覆使用,不需要在每個頁面重新寫程式碼,不過RenderPartial是直接將ascx檔的程式碼嵌入到aspx網頁上,並不會執行對應的Action程式碼,例如我們有一個產品的List頁面:
view source print?01 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IEnumerable<I3.Core.Model.ProductModel>>" %>
02
03 ...
04 <table>
05 <tr>
06 <th></th>
07 <th>編s號M1</th>
08 <th>產£品~名W稱U</th>
09 <th>版c本D?</th>
10 </tr>
11
12 <% foreach (var item in Model) { %>
13 <tr>
14 <td>
15 <%= Html.ActionLink("編s輯e", "EditProduct", new { id=item.ProductId }) %> |
16 <%= Html.ActionLink("詳MO細O", "ProductDetail", new { id=item.ProductId })%>
17 </td>
18 <td>
19 <%= Html.Encode(item.ProductId) %>
20 </td>
21 <td>
22 <%= Html.Encode(item.Name) %>
23 </td>
24 <td>
25 <%= Html.Encode(item.Version) %>
26 </td>
27 </tr>
28
29 <% } %>
30
31 </table>
若有許多頁面都需要用到此產品清單的列表,可以抽出來變成UserControl(例如ProductList.ascx),方便我們以後重覆利用,不過現在問題來了,那要使用Html.RenderPartial還是Html.RenderAction的方法?這時候會建議使用Html.RenderPartial,因為對於產品清單來說,我們只是用來呈現IEnumerable集合內的ProductModel資料,並不需要去執行ProductList.ascx的Action方法,所以就可以在網頁上使用下面的寫法來嵌入此UserControl:
view source print?1 <% Html.RenderPartial("Product", Model.Products); %>
2 //或是指定UserControl的路徑
3 <% Html.RenderPartial("~/Views/Product/ProductList.ascx", Model.Products); %>
至於Html.RenderAction則是會去執行Controller裡的Action,不過RenderAction有提供強行別的方式來呼叫Action,例如下面種寫法都是相同的:
view source print?1 <% Html.RenderAction("ProductList", "Product"); %>
2 //使用強行別的方式來呼叫Action
3 <% Html.RenderAction<I3.Controllers.ProductController>(x => x.ProductList()); %>
如果在網頁上使用RenderAction的方式來嵌入UserControl,這時候會先去執行ProductController的ProductList方法,再根據回傳的ActionResult來決定要呈現哪個ascx檔,當然也可以在Html.RenderAction傳入IEnumerable的集合物件 結論: Html.RenderPartial適合用在重覆使用的UserControl,必且只需要透過Model來呈現內容,或是對於廣告的UserControl也適合使用。 Html.RenderAction則會先去呼叫Controller的Action方法,如果此UserControl是需要透過資料庫取得資料來呈現(透過Action來讀取資料庫),此時會比較適合使用此方式。
