2014年5月27日 星期二

Razor 建立可重複的內容區塊 RenderPage( )

許多情境下,網頁是可以重複使用,例如: Header 與 footer 部分,故我們可以先行製作好 Header的網頁,然後不斷的重複套用,可以減少開發的時間,並便於管理。

範例下載:

先在Layout的目錄建立_header.cshtml 與 _footer.cshtml




這兩個檔案中輸入,預計顯示之內容。

在_Layout.cshtml 中於特定位置使用 RenderPage( ) 方法,即可重複匯入相關指定網頁內容。


Layout 部分:


<div id="content">
        <header>
            @RenderPage("~/Layout/_header.cshtml")
            <nav>
                <ul>
                    <li>首頁</li>
                    <li>購物</li>
                    <li>關於</li>
                </ul>
            </nav>
        </header>
        <section>
            @RenderBody()
        </section>
        <footer>
            @RenderPage("~/Layout/_footer.cshtml")
        </footer>
    </div>

結果如下:









Razor 版面配置的統一標題與統一名稱利用 Page 物件。

在網頁內容中先定義Page的相關內容屬性。

如:

 Page.Title = "網頁抬頭";
  Page.Name = "網頁標題";

下載範例:



內容部分:


@{Layout = "~/Layout/_Layout.cshtml";
  Page.Title = "我是抬頭";
  Page.Name = "我是標題";
 }
@section footer{<h1>我是頁尾</h1>}
<p>ABC123</p>



Layout部分:

    <title>@Page.Title</title>
    <link rel="stylesheet" href="@Href("~/style/main.css")"></head>
<body>
    <div id="content">
        <header>
           @Page.Name
            <nav>
                <ul>
                    <li>首頁</li>
                    <li>購物</li>
                    <li>關於</li>
                </ul>
            </nav>
        </header>
        <section>
            @RenderBody()
        </section>
        <footer>
            @RenderSection("footer")
        </footer>
    </div>
</body>

結果如下:



2014年5月26日 星期一

Razor 多區段版面配置頁面 RenderSection( )

若Layout中有多區段內容需替換,需採用RenderSection( ) 來進行處理。

範例下載:

在內容網頁中,需進行定義如下所示。


  1. 需指定Layout檔案位置。
  2. 需定義標籤名稱與內容。
  3. @RenderSection( ) 增加第二個參數為布林值,可判斷是否內容部分的該區段一定要傳值到Layout這裡。 範例:@RenderSection("header",true);
  4. IsScetionDefined( )判斷是否該值是否有傳值過來。 範例:IsScetionDefined( "header")



內容部分:


@{Layout = "~/Layout/_Layout.cshtml";}
@section header{<h1>我是標題</h1>}
@section footer{<h1>我是頁尾</h1>}
<p>ABC123</p>


Layout部分:

<div id="content">
        <header>
           @RenderSection("header");
            <nav>
                <ul>
                    <li>首頁</li>
                    <li>購物</li>
                    <li>關於</li>
                </ul>
            </nav>
        </header>
        <section>
            @RenderBody()
        </section>
        <footer>
            @RenderSection("footer")
        </footer>
    </div>

Razor 版面配置 RenderBody()用法


1、須建立配置頁面,檔名需前面開頭為[ _ ]線,.NET 將不會把該網頁檔送上瀏覽器。
2、建議建立一個名為Layout的目錄結構,以便後須歸檔整理,方便套用。
3、建議採用CSS檔進行版面的樣式進行格式化,一般都是放在Style的目錄中。

RenderBody( ) 方法


版面配置頁面和一般CSHTML網頁相同,只是用於呼叫RenderBody( )方法來插入網頁的實際內容。

內容部分需指定Layout 的檔案路徑。 即可使用。




範例下載



Layout 部分:

<div id="content">
        <header>
            <h1>測試的網站</h1>
            <nav>
                <ul>
                    <li>首頁</li>
                    <li>購物</li>
                    <li>關於</li>
                </ul>
            </nav>
        </header>
        <section>
            @RenderBody()
        </section>
        <footer>
            <small>&copy; @DateTime.Now.Year </small>
        </footer>
</div>

內容部分: 

@{Layout = "~/Layout/_Layout.cshtml";}  

<p>ABC123</p>


結果如下:





2014年5月20日 星期二

Razor 資料型態轉換與驗證

在實務上,有時我們需要明確進行型態轉換,最常是使用在將使用者輸入的字串資料轉換成其他資料型態,這是一些As開頭的方法;檢查資料型態是Is開頭的方法,方法如下所示:



方法
說明
AsInt()
將數字內容的字串轉換成整數型態
IsInt()
檢查字串內容是否是整數型態,是傳回true
AsBool()
truefalse內容的字串轉換成布林型態
IsBool()
檢查字串內容是否是布林型態,是傳回true
AsFloat()
將擁有小數內容的字串轉換成浮點數型態
IsFloat()
檢查字串內容是否是浮點數型態,是傳回true
AsDecimal()
將擁有小數內容的字串轉換成Decimal數值型態
IsDecimal()
檢查字串內容是否是Decimal數值型態,是傳回true
AsDateTime()
將擁有日期時間內容的字串轉換成DateTime型態
IsDateTime()
檢查字串內容是否是DateTime型態,是傳回true


@{
       string str = "123";
      
    Response.Write("IS型態驗證str:"+str.IsInt()+"<BR>");

    int intshow = 0;

    intshow = str.AsInt();

    Response.Write("IS型態驗證intshow:" + intshow + "<BR>");
    
        
   }




正回購與逆回購

我們常在財經新聞中,聽到中國央行正在進行正、逆回購交易,那代表甚麼意思,以下是解釋內容。

中國人民銀行公開市場業務債券交易主要包括回購交易、現券交易和發行中央銀行票據 。

回購交易:

回購交易分為「正回購」「逆回購」兩種。

一、正回購:(資金緊縮)


為中國人民銀行向一級交易商賣出有價證券,並約定在未來特定日期買回有價證券的交易行為,正回購為央 行從市場收回流動性的操作。
 

二、正回購到期:(資金寬鬆)


為央行向市場投放流動性的操作。

三、逆回購:(資金寬鬆)

為中國人民銀行向一級交易商購買有價證券,並約定在未來特定日期將有價證券 賣給一級交易商的交易行為,逆回購為央行向市場上投放流動性的操作。

四、逆回購到期:(資金緊縮)

 為央行從市場收回流動性的操作。



備註:資料來源為Wiki 公開市場操作篇。

Razor 的資料型態的轉換

在實務上,有時我們需要明確進行型態轉換,最常是使用在將使用者輸入的字串資料轉換成其他資料型態,這是一些As開頭的方法;檢查資料型態是Is開頭的方法。

轉換是AS開頭:

型態檢查是IS開頭:

Razor 的 Response 與 Request

在WebPage物件中,我們常用的其中兩個物件如下:


屬性
說明
Request
取得目前HTTP請求的HttpRequest物件,此物件的屬性是目前請求的相關資訊,例如:Request.FilePath取得目前頁面的路徑;Request.Url取得URL網址
Response
取得目前HTTP回應的HttpResponse物件,此物件的屬性是目前回應至瀏覽器頁面的相關資訊


使用方式,如下所示

下載範例: