为了加速开发过程,N2很贴心地提供了snippets和templates,配置如下:
1、代码提示路径 [Documents]\Visual Studio 20xx\Code Snippets\Visual C#\My Code Snippets,触发条件n2prop
2、模版路径 [Documents]\Visual Studio 2008\Templates\ItemTemplates\Visual C#
3、智能感知 /bin/N2.xml
完成后,打开我们的项目,然后选择新建项,Mvc的例子可能会略有不同,不过大同小异。
这里要选择名为N2 Page Template的模版,新建后会自动在Items文件夹和Ui文件夹下创建内容项和相关的视图,例如录入CSDNPage.aspx,其中99%的代码都是自动生成,我只是将Text文字改为CSDNText而已。
这时,在Items文件夹下的CSDNPage.cs源码如下:
using N2;
using N2.Web;
using N2.Details;
namespace GC2Portal.Items
{
/// <summary>
/// This class represents the data transfer object that encapsulates
/// the information used by the template.
/// </summary>
[PageDefinition("CSDNPage", TemplateUrl = "~/UI/CSDNPage.aspx")]
[WithEditableTitle, WithEditableName]
public class CSDNPage : ContentItem
{
[EditableFreeTextArea("CSDNText", 100)]
public virtual string CSDNText
{
get { return (string)(GetDetail("CSDNText") ?? string.Empty); }
set { SetDetail("CSDNText", value, string.Empty); }
}
}
}
在UI目录下的CSDNPage.aspx源码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CSDNPage.aspx.cs" Inherits="GC2Portal.UI.CSDNPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>CSDNPage</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<n2:Display PropertyName="CSDNText" runat="server" />
</div>
</form>
</body>
</html>
后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace GC2Portal.UI
{
public partial class CSDNPage : N2.Web.UI.ContentPage<Items.CSDNPage>
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
设计代码:
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace GC2Portal.UI {
public partial class CSDNPage {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
}
}