跳到主要內容

Orchard 建立模組 - HelloWorld

在學習程式的第一段程式,一般來說都是Hello World!!,為了要熟悉Orchard的開發,所以也先來寫個Hello World的module。

由於Orchard是建構在ASP.NET MVC的架構上,所以如果熟悉ASP.NET MVC就會覺得Orchard很親切,但是不熟悉也沒有關係,Orchard是透過MVC中的Area的概念來建構模組,MVC的Area就是如同一個小站台(擁有一組完整不可分割的功能)。一個模組就是一個帶有簡單manifest的area。
要建構模組,在Orchard帶有一個內建的工具Code Generation來協助開發者建構一個基本附加檔案,是讓開發者用來建構controllers, data migration classes, modules, 與 themes。該功能需要先進到Orchard Dashboard啟用,進入到Dashboard後點選Modules會進到Modules的功能區,然後,下拉到Developer分類中選擇Code Generation並點選Enable,這樣我們就可以準備好開發工具了,接著到Orchard.Web\bin中有個檔案是Orchard.exe,快點兩下,就可以看到下圖的視窗。(點開後需要等一下,才會看到 orchard> 符號喔)
SNAGHTML211a1f0
我們要建立一個模組叫 Hello World所以在視窗中輸入

orchard> codegen module HelloWorld

接著會看到
image
然後你可以看到Source Code的Modules中多了一個Module叫HelloWorld
image
我們點開Module會看到Orchard已經幫我們把基本的結構建立好了,首先我們先點開Module.txt來編輯
image
首先我們先編輯模組的基本資訊(注意:這文字要用空白做縮排,不要用Tab)
image
接著新增一個Routers.cs檔在HelloWorld中,內容如下:

namespace HelloWorld
{
public class Routes : IRouteProvider
{
public void GetRoutes(ICollection<RouteDescriptor> routes)
{
foreach (var routeDescriptor in GetRoutes())
routes.Add(routeDescriptor);
}

public IEnumerable<RouteDescriptor> GetRoutes()
{
return new[] {
new RouteDescriptor {
Priority = 5,
Route = new Route(
"HelloWorld",
new RouteValueDictionary {
{"area", "HelloWorld"},
{"controller", "Home"},
{"action", "Index"}
},
new RouteValueDictionary(),
new RouteValueDictionary {
{"area", "HelloWorld"}
},
new MvcRouteHandler())
}
};
}
}
}

這是用來設定HelloWorld這個URL是對應到HelloWordl這個area、使用的controller是Home而對應的動作是Index,接著在Controllers資料夾中建立HomeController.cs內容如下:
namespace HelloWorld.Controllers
{
[Themed]
public class HomeController : Controller
{
public ActionResult Index()
{
return View("HelloWorld");
}
}
}

主要是宣告若action Index則回傳View HelloWorld,最後面在Views底下建立Home目錄,然後新增一個HelloWorld.cshtml檔案,內容如下:
<h2>@T("Hello World!")</h2>

接著執行該網站,並且進入到Dashboard,啟動模組
image
接著把模組新增到瀏覽路徑上,選擇右方選單的Navigation,
image
新增Custom Link
image
輸入Menu文字,設定Url記得要設定為~/HelloWorld 不能設定為/HelloWorld,
image
最後回到首頁點選Hello World頁簽就可以看到
image

留言

這個網誌中的熱門文章

以管理者權限執行批次檔

最近有個專案需要執行批次檔,來進行某些設定或者城市的安裝,在XP上這個Script可以運行沒問題,可是一到Vista以後的Windows版本就無法運行了,最主要的原因是,UAC的管制的問題,幾經尋找,總算找到一個可行的解決辦法。

如何使用電子發票應用API

財政部在電子發票推行上,為了方便開發更多應用所以提供了API可供個人或者廠商進行相關應用的開發,申請的方式請參考 –> 電子發票API申請 最簡單的申請方式就是透過自然人憑證或者工商憑證申請,這樣就不需要檢附任何證明文件。不過這不是本篇的重點,當申請到時會給你一組AppID跟APIKey,然後你可以下載 電子發票應用規格1.4版 來了解怎樣使用這個API,或許是我才疏學淺,所以在1.3版的時候其實搞不太懂他的API文件,到了1.4版才摸清楚發生了什麼事,當然還是花了點時間才搞懂,現在就簡單說明一下API的使用方式,希望看到本篇文章的同好就不需要花時間測試了。

DataGridView欄位統一格式化

最近的工作內有一個需求,就是由於專案中有許多呈現資料的DataGridView,而其中的欄位需要呈現的包含金額、數字或者日期等格式,若要一個個的設定格式,如果有一天格式突然變更,可能就要苦工做到死,如何讓專案中的這些格式都統一就成了一個問題,經過了一番查找,發現可以透過DataGridView.CellFormatting Event來解決這個問題。