save pdf in database c# : Export bookmarks from pdf to excel control Library utility azure asp.net winforms visual studio ASPNETWebPagesWithRazorSyntax-Book5-part624

ASP.NET Web Pages Using The Razor Syntax 
Chapter 3 – Creating a Consistent Look 
47 
Note   It's common practice to store files that are shared among web pages in a folder named 
Shared.  
3.
In the Shared folder, create a file named _Header.cshtml. 
4.
Replace any existing content with the following: 
<div class="header">This is header text.</div>
Notice that the file name is _Header.cshtml, with an underscore (_) as a prefix. ASP.NET won't 
send a page to the browser if its name starts with an underscore. This prevents people from 
requesting (inadvertently or otherwise) these pages. It's a good idea to use an underscore to 
name pages that have content blocks in them, because you don't really want users to be able to 
request these pages — they exist strictly to be inserted into other pages. 
5.
In the Shared folder, create a file named _Footer.cshtml and replace the content with the 
following: 
<div class="footer">&copy; 2010 Contoso Pharmaceuticals. All rights reserved. 
</div>
6.
In the Index.cshtml page, add the following highlighted code, which makes two calls to the 
RenderPage
method: 
<!DOCTYPE html> 
<html> 
<head> 
<title>Main Page</title> 
</head> 
<body> 
@RenderPage("/Shared/_Header.cshtml") 
<h1>Index Page Content</h1> 
<p>This is the content of the main page.</p> 
@RenderPage("/Shared/_Footer.cshtml") 
</body> 
</html>
This shows how to insert a content block into a web page. You call the 
RenderPage
method and 
pass it the name of the file whose contents you want to insert at that point. Here, you're 
inserting the contents of the _Header.cshtml and _Footer.cshtml files into the Index.cshtml file. 
7.
Run the Index.cshtml page in a browser. (Make sure the page is selected in the Files workspace 
before you run it.) 
8.
In the browser, view the page source. (For example, in Internet Explorer, right-click the page and 
then click View Source.) 
Export bookmarks from pdf to excel - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
bookmarks pdf documents; split pdf by bookmark
Export bookmarks from pdf to excel - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
add bookmark pdf file; add bookmarks to pdf online
ASP.NET Web Pages Using The Razor Syntax 
Chapter 3 – Creating a Consistent Look 
48 
This lets you see the web page markup that's sent to the browser, which combines the index 
page markup with the content blocks. The following example shows the page source that's 
rendered for Index.cshtml. The calls to 
RenderPage
that you inserted into Index.cshtml have been 
replaced with the actual contents of the header and footer files. 
<!DOCTYPE html> 
<html> 
<head> 
<title>Main Page</title> 
</head> 
<body> 
<div class="header"> 
This is header text. 
</div> 
<h1>Index Page Content</h1> 
<p>This is the content of the main page.</p> 
<div class="footer"> 
&copy; 2010 Contoso Pharmaceuticals. All rights reserved. 
</div> 
</body> 
</html>
Creating a Consistent Look Using Layout Pages 
So far you've seen that it's easy to include the same content on multiple pages. A more structured 
approach to creating a consistent look for a site is to use layout pages. A layout page defines the 
structure of a web page, but doesn't contain any actual content. After you've created a layout page, you 
can create web pages that contain the content and then link them to the layout page. When these pages 
are displayed, they'll be formatted according to the layout page. (In this sense, a layout page acts as a 
kind of template for content that's defined in other pages.) 
The layout page is just like any HTML page, except that it contains a call to the 
RenderBody
method. The 
position of the 
RenderBody
method in the layout page determines where the information from the 
content page will be included. 
The following diagram shows how content pages and layout pages are combined at run time to produce 
the finished web page. The browser requests a content page. The content page has code in it that 
specifies the layout page to use for the page's structure. In the layout page, the content is inserted at 
the point where the 
RenderBody
method is called. Content blocks can also be inserted into the layout 
page by calling the 
RenderPage
method, the way you did in the previous section. When the web page is 
complete, it's sent to the browser. 
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
document file. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview
add bookmarks pdf; creating bookmarks in pdf from word
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Demo Code in VB.NET. The following VB.NET codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
export excel to pdf with bookmarks; pdf create bookmarks
ASP.NET Web Pages Using The Razor Syntax 
Chapter 3 – Creating a Consistent Look 
49 
The following procedure shows how to create a layout page and link content pages to it. 
1.
In the Shared folder of your website, create a file named _Layout1.cshtml. 
2.
Replace any existing content with the following: 
<!DOCTYPE html> 
<head> 
<title> Structured Content </title> 
<link href="@Href("/Styles/Site.css")" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
@RenderPage("/Shared/_Header2.cshtml") 
<div id="main"> 
@RenderBody() 
</div> 
<div id="footer"> 
&copy; 2010 Contoso Pharmaceuticals. All rights reserved. 
</div> 
</body> 
</html>
You use the 
RenderPage
method in a layout page to insert content blocks. A layout page can 
contain only one call to the 
RenderBody
method. 
Note   Web servers don't all handle hyperlink references (the 
href
attribute of links) in the same 
way. Therefore, ASP.NET provides the 
@Href
helper, which accepts a path and provides the path to 
the web server in the form that the web server expects. 
3.
In the Shared folder, create a file named _Header2.cshtml and replace any existing content with 
the following: 
<div id="header">Chapter 3: Creating a Consistent Look</div>
4.
In the root folder, create a new folder and name it Styles. 
5.
In the Styles folder, create a file named Site.css and add the following style definitions: 
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
how to bookmark a pdf file in acrobat; editing bookmarks in pdf
C# PDF File Compress Library: Compress reduce PDF size in C#.net
NET framework. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. C# class demo
create pdf bookmark; bookmark template pdf
ASP.NET Web Pages Using The Razor Syntax 
Chapter 3 – Creating a Consistent Look 
50 
h1 { 
border-bottom: 3px solid #cc9900; 
font: 2.75em/1.75em Georgia, serif; 
color: #996600; 
ul { 
list-style-type: none; 
body { 
margin: 0; 
padding: 1em; 
background-color: #ffffff; 
font: 75%/1.75em "Trebuchet MS", Verdana, sans-serif; 
color: #006600; 
#list { 
margin: 1em 0 7em -3em; 
padding: 1em 0 0 0; 
background-color: #ffffff; 
color: #996600; 
width: 25%; 
float: left; 
#header, #footer { 
margin: 0; 
padding: 0; 
color: #996600; 
}
These style definitions are here only to show how style sheets can be used with layout pages. If 
you want, you can define your own styles for these elements. 
6.
In the root folder, create a file named Content1.cshtml and replace any existing content with the 
following: 
@{ 
Layout = "/Shared/_Layout1.cshtml"; 
<h1> Structured Content </h1> 
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, 
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in 
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in 
culpa qui officia deserunt mollit anim id est laborum.</p>
This is a page that will use a layout page. The code block at the top of the page indicates which 
layout page to use to format this content. 
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
Export PDF images to HTML images. SDK, preserves all the original anchors, links, bookmarks and font style that are included in target PDF document file.
edit pdf bookmarks; bookmarks in pdf
How to C#: Basic SDK Concept of XDoc.PDF for .NET
C# programmers can convert Word, Excel, PowerPoint Tiff, Jpeg, Bmp, Png, and Gif to PDF document. This class describes bookmarks in a PDF document.
bookmarks pdf; create bookmarks pdf file
ASP.NET Web Pages Using The Razor Syntax 
Chapter 3 – Creating a Consistent Look 
51 
7.
Run Content1.cshtml in a browser. The rendered page uses the format and style sheet defined in 
_Layout1.cshtml and the text (content) defined in Content1.cshtml. 
You can repeat step 6 to create additional content pages that can then share the same layout 
page. 
Note   You can set up your site so that you can automatically use the same layout page for all the 
content pages in a folder. For details, see Chapter 18 - Customizing Site-Wide Behavior
Designing Layout Pages That Have Multiple Content Sections
A content page can have multiple sections, which is useful if you want to use layouts that have multiple 
areas with replaceable content. In the content page, you give each section a unique name. (The default 
section is left unnamed.) In the layout page, you add a 
RenderBody
method to specify where the 
unnamed (default) section should appear. You then add separate 
RenderSection
methods in order to 
render named sections individually. 
The following diagram shows how ASP.NET handles content that's divided into multiple sections. Each 
named section is contained in a section block in the content page. (They're named 
Header
and 
List
in 
the example.) The framework inserts content section into the layout page at the point where the 
RenderSection
method is called. The unnamed (default) section is inserted at the point where the 
RenderBody
method is called, as you saw earlier. 
C# Create PDF Library SDK to convert PDF from other file formats
create searchable PDF document from Microsoft Office Word, Excel and PowerPoint. Create and save editable PDF with a blank page, bookmarks, links, signatures
how to bookmark a pdf file; create pdf bookmarks
VB.NET PDF: Basic SDK Concept of XDoc.PDF
VB.NET programmers can convert Word, Excel, PowerPoint Tiff, Jpeg, Bmp, Png, and Gif to PDF document. This class describes bookmarks in a PDF document.
pdf bookmark editor; auto bookmark pdf
ASP.NET Web Pages Using The Razor Syntax 
Chapter 3 – Creating a Consistent Look 
52 
This procedure shows how to create a content page that has multiple content sections and how to 
render it using a layout page that supports multiple content sections. 
1.
In the Shared folder, create a file named _Layout2.cshtml. 
2.
Replace any existing content with the following: 
<!DOCTYPE html> 
<html> 
<head> 
<title>Multisection Content</title> 
<link href="@Href("/Styles/Site.css")" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
<div id="header"> 
@RenderSection("header") 
</div> 
<div id="list"> 
@RenderSection("list") 
</div> 
<div id="main"> 
@RenderBody() 
</div> 
<div id="footer"> 
&copy; 2010 Contoso Pharmaceuticals. All rights reserved. 
</div> 
</body> 
</html>
You use the 
RenderSection
method to render both the header and list sections. 
3.
In the root folder, create a file named Content2.cshtml and replace any existing content with the 
following: 
@{ 
Layout = "/Shared/_Layout2.cshtml"; 
ASP.NET Web Pages Using The Razor Syntax 
Chapter 3 – Creating a Consistent Look 
53 
@section header { 
<div id="header"> 
Chapter 3: Creating a Consistent Look 
</div> 
@section list { 
<ul> 
<li>Lorem</li> 
<li>Ipsum</li> 
<li>Dolor</li> 
<li>Consecte</li> 
<li>Eiusmod</li> 
<li>Tempor</li> 
<li>Incididu</li> 
</ul> 
<h1>Multisection Content</h1> 
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, 
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in 
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in 
culpa qui officia deserunt mollit anim id est laborum.</p>
This content page contains a code block at the top of the page. Each named section is contained 
in a section block. The rest of the page contains the default (unnamed) content section. 
4.
Run the page in a browser. 
ASP.NET Web Pages Using The Razor Syntax 
Chapter 3 – Creating a Consistent Look 
54 
Making Content Sections Optional
Normally, the sections that you create in a content page have to match sections that are defined in the 
layout page. You can get errors if any of the following occur: 
The content page contains a section that has no corresponding section in the layout page.  
The layout page contains a section for which there's no content.  
The layout page includes method calls that try to render the same section more than once.  
However, you can override this behavior for a named section by declaring the section to be optional in 
the layout page. This lets you define multiple content pages that can share a layout page but that might 
or might not have content for a specific section. 
1.
Open Content2.cshtml and remove the following section: 
@section header { 
<div id="header"> 
Chapter 3: Creating a Consistent Look 
</div> 
}
2.
Save the page and then run it in a browser. An error message is displayed, because the content 
page doesn't provide content for a section defined in the layout page, namely the header 
section. 
3.
In the Shared folder, open the _Layout2.cshtml page and replace this line: 
@RenderSection("header")
with the following code: 
@RenderSection("header", required: false)
ASP.NET Web Pages Using The Razor Syntax 
Chapter 3 – Creating a Consistent Look 
55 
As an alternative, you could replace the previous line of code with the following code block, 
which produces the same results: 
@if (IsSectionDefined("header")) { 
@RenderSection("header") 
}
4.
Run the Content2.cshtml page in a browser again. (If you still have this page open in the 
browser, you can just refresh it.) This time the page is displayed with no error, even though it 
has no header. 
Passing Data to Layout Pages
You might have data defined in the content page that you need to refer to in a layout page. If so, you 
need to pass the data from the content page to the layout page. For example, you might want to display 
the login status of a user, or you might want to show or hide content areas based on user input. 
To pass data from a content page to a layout page, you can put values into the 
PageData
property of the 
content page. The 
PageData
property is a collection of name/value pairs that hold the data that you want 
to pass between pages. In the layout page, you can then read values out of the 
PageData
property. 
Here's another diagram. This one shows how ASP.NET can use the 
PageData
property to pass values from 
a content page to the layout page. When ASP.NET begins building the web page, it creates the 
PageData
collection. In the content page, you write code to put data in the 
PageData
collection. Values in the 
PageData
collection can also be accessed by other sections in the content page or by additional content 
blocks. 
The following procedure shows how to pass data from a content page to a layout page. When the page 
runs, it displays a button that lets the user hide or show a list that's defined in the layout page. When 
ASP.NET Web Pages Using The Razor Syntax 
Chapter 3 – Creating a Consistent Look 
56 
users click the button, it sets a true/false (Boolean) value in the 
PageData
property. The layout page 
reads that value, and if it's false, hides the list. The value is also used in the content page to determine 
whether to display the Hide List button or the Show List button. 
1.
In the root folder, create a file named Content3.cshtml and replace any existing content with the 
following: 
@{ 
Layout = "/Shared/_Layout3.cshtml"; 
PageData["Title"] = "Passing Data"; 
PageData["ShowList"] = true; 
if (IsPost) { 
if (Request["list"] == "off") { 
PageData["ShowList"] = false; 
@section header { 
<div id="header"> 
Chapter 3: Creating a Consistent Look 
</div> 
<h1>@PageData["Title"]</h1> 
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, 
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 
Documents you may be interested
Documents you may be interested