问题标签 [castle-monorail]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linq-to-sql - 如何让 Castle MonoRail 的 DataBinder/SmartDispatcherController 绑定到包含接口属性的类型?
我们在域模型中使用接口来表示实体类。通过使用 LinqToSql,我们有这些的具体实现。我们为每个 LinqToSql 类添加了一个工厂方法,我们的服务层使用它来实例化一个新实体(注意;与控制器的 DataBind 属性相反)。
MonoRail 的默认 DataBinder 实现将忽略定义为接口的属性。
理想情况下,我们不想在 MonoRail 中实例化我们的数据层类——接口的全部意义在于分离这些关注点。
此外,我们真的不想创建另一组非 LinqToSql 具体类,其唯一工作是在层之间进行转换。
在这里结束了漫长的一天;请有人怜悯并指出我们应该用自己的实现重载的 IDataBinder 部分,或者暗示我们可能尝试的其他方法?;-)
castle-monorail - NVelocity、foreach 和两个列表的问题
有没有一种简单的方法可以解决以下问题。
假设我从我的模型中获取了一个 IList,其中包含我的控制器中的一些书籍。现在我想丰富输出并使用来自外部框架的另一个模型从 Amazon 获取预览并获取另一个 IList。
现在我将两个 IList 都放入一个属性包中。
在 NVelocity 中,我为 BookList 使用了#foreach,但是如何通过正确的预览访问 amazonbooklist?我不能使用 $amazonbook[index],其中 index 是 isbn。我真的需要将两个列表放在一个大列表中,其中包含一个仅包含其他两个对象的简单对象吗?
请记住,两种模型都来自不同的框架,不能放在一个框架中。两个框架必须保持分离。我尝试解决 NVelocity 问题,当然,这个问题只是一个例子,我们不卖书;)
c# - 我们可以在 MonoRail 中的不同操作上使用带扩展名和不带扩展名吗?
我想在 Castle MonoRail 上构建一个 Web 应用程序,我想知道我们如何使用一个带有扩展的动作和另一个没有扩展的动作?如何为我们提供 HTML 助手生成器 url?
前任:
c# - 服务层和存储库
我使用 MVC 框架已经有一段时间了,我真的很喜欢如何分离关注点。我养成了让控制器做大量工作的坏习惯。所以我真的在寻求一些建议。
当我第一次开始使用 MVC 时,我经常在数据库工作完成后让控制器对模型进行操作。我知道这很糟糕,所以将这项工作转移到模型中。但是我对此并不满意,因为我希望我的模型非常好学。
我做了一些阅读,我看到人们通过服务层来保持他们的控制器和模型的精简,我喜欢它的外观。
我只是想了解服务层和存储库应该如何协同工作。这是我的假设,请告诉我这是否是一种好的工作方式?
- 如果不需要对数据进行任何操作,控制器可以直接调用存储库,因此服务层不需要参与
- 一旦需要对数据(业务逻辑)进行任何工作,则应在服务层中完成,控制器将在需要时对服务层进行简单调用
- 一旦服务完成了它的业务逻辑,它将根据需要使用存储库(如果需要持久化数据)。
- 理想情况下,模型应该保持精简,理想情况下只是充当 DTO
- 数据验证将在模型内完成(使用 MonoRail 验证属性)。我很欣赏甚至没有人喜欢用很多属性污染他们的模型,但这是一个不同的讨论。我喜欢 MonoRail 的验证属性在 UI 中自动 jQuery 验证的好处。
我试图将我的所有代码都转向单一责任原则,因此试图整理我的编码实践。
谢谢
c# - 如何确定(ASP.NET / MonoRail)网站用户所在的时区?
所以,我正在设置一个应该过期的cookie。但是,我希望这可以在世界范围内使用。所以我需要为用户的时区调整我的到期日期。
所以,我需要在服务器端找出用户的时区。
有没有办法在 BCL 中做到这一点?就像依靠正确设置 CultureInfo.CurrentUICulture 之类的东西(我相信 MonoRail LocalizationFilter 确实如此,但尚未正确检查),然后确定用户所在的时区(以及考虑夏令时)也有)基于此?
.NET 3.5 中有 System.TimeZoneInfo,但很少有关于 Id 是什么的文档——无论它们是 ISO 代码还是什么。
还是我要依靠客户端的某些东西从例如 Date.getTimezoneOffset() 推送这些信息? 我宁愿避免这种情况,因为客户端撒谎。
gzip - 使用 IIS6.0 对没有扩展名的文件进行 Gzip 压缩
有没有人设法在 IIS6 的网站上激活 Gzip 压缩?我们正在使用 Castle Monorail(顺便说一句,它非常好),因此有干净的 RESTful URL,没有扩展............而且有问题 -> 据我们所见,我们需要扩展端点以允许 gzip 压缩。
似乎唯一的出路是我们自己的 HTTPModule - 还有其他人知道其他方式吗?
干杯伊恩
asp.net-mvc - ASP MVC.net 中是否存在 ARDatabind 的 LINQ 等效项?
是否有任何属性可以放在一个动作的参数上,该动作告诉 LINQ 加载特定实体,并且只对改变了活动记录/单轨的值进行数据绑定(请参阅ARDataBinding)
c# - MonoRail 重定向到 # 锚点
我正在使用带有jQuery 选项卡式导航的Castle Monorail。
在处理控制器操作时,我想重定向到一个视图,并控制哪个选项卡是可见的。因此,我想让我的控制器重定向到视图中的特定锚点,类似于:
导致网址:
但是,实际结果将#符号编码为%23
我肯定在这里错过了一个基本概念。我需要做什么来解决这个问题?
javascript - 合并压缩 CastleProject MonoRails 的 formhelper.js 和 behavior.js?
任何使用 CastleProject MonoRails MVC 的人都知道我是否可以将 formhelper 和行为 js 文件组合和/或压缩成类似 monorails.js 的东西?
我想尽可能少地获得网络请求的数量..
caching - 强制浏览器缓存对 Castle MonoRail 操作的请求?
在我们的项目中,我们有一大堆小的 css/js 文件,所以当我们构建视图时,我们会发现自己编写了很多<link>
或<script>
标签,迫使浏览器对我们的 css/js 内容提出许多请求。为了解决这个问题,我们开始寻找一种方法让服务器将所有这些都支持到一个请求中,该请求将与操作关联的每个 css 文件或每个 js 文件转储到响应中。
无需过多介绍,我们创建了一个 Helper 类,它接受文件、连接它们并呈现如下标签:
<script type="text/javascript" src="/content/js15628453.rails"></script>
ContentController 然后有一个默认操作,它使用“js15628453”来查找 Helper 存储连接文件的位置并将其输出。这真的很好用。
然而,正如 Firebug 报告的那样,浏览器总是向“/content/js15628453.rails”发送请求以获取连接文件,尽管 URL 始终相同并且响应始终相同。我已经尝试了所有类型的 HTTP Cache-Control
、Expires
、Last-Modified
等标头组合,但还没有得到 Firebug 报告的从缓存中加载的内容。
为什么浏览器会忽略这些标头?有没有其他选项我可以尝试强制它被缓存?