在我们的系统中,大部分代码都在asp.net(2.0)网站上,几个月前我发现了Castle Monorail,我觉得它比asp.net / webforms更容易使用。
这是我们需要的: - 使用Castle Monorail - 我们的代码必须在网站上(我的主管是一种老式的网络开发人员,所以他更喜欢有一些“.cs”文件,而不是一个“.dll”)。 - 我们必须保留现有的webforms代码
所以也许你有一个教程或类似的东西(我发现了很多关于asp.net MVC和城堡单轨的教程,但我确实找到了asp.net 2.0)
Merci les collegues
答案 0 :(得分:2)
所以这很简单(15分钟):
1 /从web.config获取所需的元素: - config section handler
<section name="monorail" type="Castle.MonoRail.Framework.Configuration.MonoRailSectionHandler, Castle.MonoRail.Framework" />
- 配置本身
<monorail>
<controllers>
<assembly>App_Code</assembly>
<assembly>Castle.Monorail.ViewComponents</assembly>
</controllers>
<viewEngines viewPathRoot="Views">
<add type="Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine, Castle.MonoRail.Framework.Views.NVelocity" />
</viewEngines>
</monorail>
“App_Code”是网站程序集的名称。
-http处理程序
<add verb="*" path="*.rails" type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory, Castle.MonoRail.Framework" />
<!--block direct user access to template files-->
<add verb="*" path="*.vm" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.boo" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.st" type="System.Web.HttpForbiddenHandler" />
-http modules
<add name="monorail" type="Castle.MonoRail.Framework.EngineContextModule, Castle.MonoRail.Framework" />
2 /取你需要的dll,在我的情况下(我不使用activerecord):
Castle.Components.Binder.dll
Castle.Components.Common.EmailSender.dll
Castle.Components.Common.TemplateEngine.dll
Castle.Components.Common.TemplateEngine.NVelocityTemplateEngine.dll
Castle.Components.Validator.dll
Castle.Core.dll
Castle.MonoRail.Framework.dll
Castle.MonoRail.Framework.Views.NVelocity.dll
Castle.MonoRail.ViewComponents.dll
3 /在App_Code文件夹中添加一个类(例如TestMonorailController):
使用Castle.MonoRail.Framework;
public class TestMonorailController : SmartDispatcherController
{
public TestMonorailController()
{
}
public void OnePage()
{
PropertyBag["toto"] = "TEST";
}
}
4 /在您网站的根目录中添加一个Views文件夹 5 /在刚刚创建的文件夹中添加TestMonorail文件夹 6 /在此文件夹中添加文件名“OnePage.vm”:
$toto
7 /测试您的网站:
http://localhost:XX/YourWebSite/TestMonorail/OnePage.rails
你应该看到
“TEST”
Et voila :)我可以编辑我的生产代码。谢克斯
答案 1 :(得分:1)
我猜你可以将控制器类放在App_Code中并完成它。 你需要为Monorail网址映射一个特殊的扩展名。 如果您不使用SOAP webservices(.asmx),那么将此扩展名映射到Monorail的HttpHandlerFactory。
一个有趣的罪魁祸首可能是包含App_code文件的实际程序集没有一个好名字(我认为),MonoRail确实需要知道从中找到控制器类的程序集。
我建议你玩上面列出的提示,看看它能带给你什么。分享你看到的例外情况,希望我们能尽快找到它的底部