需求就是这样,不过,如何实现呢?应该可以对Article设置对自己的一对多关系,那么在数据库中它们的父子关系就是确定的。不过,我却不太希望这样,对于Wiki来说,Wiki页都是独立的似乎更符合常规,那么这个路径怎么生成呢?
考虑之后,其实这个路径信息不必保存在数据库内,而只需要在url里面就足够了。具体就是增加一个path参数,用来解析路径信息,这里面有两个选择,一是path里是路径Wiki页的名称,另一个是path里是路径Wiki页的Id,我选择了后者,多个Id之间用下划线连接。
当然,这个改动也牵涉到GenerateShowText函数,所以先来修改它的单元测试吧,它应该增加一个path参数,当其为null时,处理方式和以前一样,否则将path加入生成的链接里:
[Test]
public void TestTestGenerateShowTestWithPath()
{
var text = "abc [[bb]] xyz";
var act = CommonHelper.GenerateShowText(text, "1_2");
Assert.AreEqual("abc <a href=\"Show.aspx?path=1_2&title=bb\">bb</a> xyz", act);
}
public void TestTestGenerateShowTestWithPath()
{
var text = "abc [[bb]] xyz";
var act = CommonHelper.GenerateShowText(text, "1_2");
Assert.AreEqual("abc <a href=\"Show.aspx?path=1_2&title=bb\">bb</a> xyz", act);
}