问题标签 [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.
extjs - Extjs 在成功创建记录时抛出异常“realize was called with invalid remote-data”
我在单轨应用程序中使用 extjs。我正在使用 JsonStore 将数据保存回我的控制器。我已阅读、更新和删除工作正常。但我似乎无法弄清楚如何在创建时重新格式化我的回复。目前,Firebug 给我以下错误:
未捕获的异常:Ext.data.DataReader:#realize 被调用时使用了无效的远程数据。请参阅 DataReader#realize 的文档并查看您的 DataReader 配置。
我对 WTF 这个错误的含义感到困惑。有人有指点吗?下面的相关代码位:
我目前的反应看起来像这样,但这是经过大量试验和错误之后,所以它被大量冲洗了。
.net - .NET Hashtable - “相同”键,不同的哈希
两个 .net 字符串是否有可能具有不同的哈希值?我有一个哈希表,其中包括关键的“路径”。当我循环遍历表中的元素以打印它时,我可以看到密钥存在。
然而,当试图查找它时,没有匹配的元素。调试表明我正在寻找的字符串与我作为键提供的字符串具有不同的哈希值。
此代码位于 Castle Monorail 项目中,使用 brail 作为视图引擎。我正在寻找的钥匙是由这样的盲文线插入的:
然后,在此方法中(在自定义 IRoutingRule 中):
密钥被打印到日志中,但函数返回 null。我不知道这甚至可能是 .net 字符串的问题,但我想这是某种编码问题?
哦,这是运行单声道。
根据要求,这是日志中的相关行:
另外,在这里我在日志打印调用上方添加了一行代码:
查看日志,您会注意到有两个“路径”键。调试器在表的不同位置显示这两个键。
unit-testing - 测试中的整个单轨动作调用
BaseControllerTest.PrepareController 足以用于控制器属性设置,例如 PropertyBag 和 Context
但是现在要运行整个管道进行集成测试,包括在动作属性中声明的过滤器?
编辑:我对视图渲染不感兴趣,只对控制器逻辑和声明性过滤器感兴趣。
我喜欢将大量视图设置逻辑移动到操作过滤器中的想法,我不确定我是否需要额外级别的集成测试,还是使用 Selenium 做得更好?
castle-activerecord - Castle MonoRail ARDataBind 试图绑定到不存在的行
我有一个在 MonoRail 上运行并使用 Castle ActiveRecord/NHibernate 的购物车应用程序,并且有一个 ShoppingCart 表和一个 ShoppingCartItems 表,它们映射到实体。
场景如下:用户将东西添加到购物车,比如 5 件商品,然后去查看购物车。购物车显示所有 5 件商品。用户复制选项卡/窗口并获得同一购物车的另一个选项卡(称为选项卡 B)。用户从购物车中删除了一个项目,所以现在选项卡 B 中有 4 个项目,但在原始选项卡 A 中,仍然有 5 个项目。用户返回选项卡 A,更新购物车中的某些内容,然后单击提交更改的“更新”按钮。我的 MonoRail 操作尝试使用视图中的数据对 ShoppingCartItems 执行 ARDataBind,其中包括所有 5 个项目。当它到达用户从选项卡 B 中删除的项目时,它会为该项目抛出“不存在具有给定标识符的行”。
我不知道是否有办法让它不绑定该行、返回 null、返回新实例等?ARDataBind 属性上有一个 AutoLoadBehavior 参数,但这似乎只影响子实体的加载,而不影响根实体的加载。无论我选择哪个选项,我都会在控制进入操作方法之前得到异常(AutoLoadBehavior.Never 除外,但这对我没有帮助)。
相反,我有代码调用 Request.ObtainParamsNode() 来拉取表单节点并将它们手动解析为对象,并忽略不再存在的那些。有没有更好的办法?
谢谢。
unit-testing - 单元测试 Monorail 的 RenderText 方法
我正在对用 Monorail v1.0.3 编写的旧 Web 应用程序进行一些维护。我想对使用 RenderText() 的操作进行单元测试。如何提取测试中的内容?从 controller.Response.OutputStream 读取不起作用,因为响应流在 PrepareController() 中没有正确设置,或者在 RenderText() 中关闭。
示例操作
示例测试(使用最小起订量)
forms - 将带有文件附件的表单发布到单轨控制器
我有以下表格(盲文):
在我的控制器上发布到以下方法签名:
当我发布表格时,我只得到文件。模板 var 为空,我不知道为什么。有没有人看到我遗漏的明显东西?
c# - 您如何在 Castle MVC (Monorail) 中获取用户的 IP 地址?
在 CastleMVC 应用程序的控制器操作中,如何获取用户的 IP 地址?
我认为在 asp.net mvc 中它会是Request.ServerVariables["REMOTE_ADDR"]
,但我在 Castle 中找不到等价物。
(我知道潜在的代理问题等,请求中报告的地址很好)
nhibernate - MonoRail:测试、路由扩展、文件夹结构
我有几个关于使用 MonoRail 的问题
测试
每个人都倾向于使用 NUnit 进行测试吗?我没有足够的测试来知道这是否是一个很好的测试框架。我只是想比以前更多地测试我的应用程序,并想知道是否有任何一般准则。
您是否应该将控制器复制到测试区域并在名称中使用 test 重命名并重新运行它?您如何确保您的测试项目和主项目彼此一致?这只是重新复制所有内容的情况,还是有工具可以为您完成?
路线扩展
MonoRail 倾向于使用,如果您正确配置路由<action>.rails
,可以省略部分吗?.rails
为什么这似乎是标准?
文件夹结构
我还没有找到真正指出您的标准文件夹结构的任何地方。当然,你有控制器、模型和视图。但是您的模型文件夹也应该包含您的数据访问对象。我见过一些有类似的东西
但是用于从视图中获取数据的自定义结构呢?如果您使用 NHibernate,那么在哪里粘贴映射的好地方?我知道这完全取决于开发人员,但我还没有真正看到任何标准方法。
干杯
asp.net - 单轨视图组件中的模板
是否可以在 vm 中为块组件提供带有 html 内容的模板?
我在 html 中做了很多事情,并希望 html 驻留在 .vm 中,而不是代码隐藏中。
这是我所拥有的:
这是我想要得到的:pageWithTwoColumns.vm:
twocolumn/default.vm(伪代码):
.net - 从另一个组件代码隐藏渲染 ViewComponent
我正在尝试从另一个组件中渲染一个组件。
问题是 Block 组件找不到它的模板。
ResourceProcessingException 消息:无法处理资源“components\CustomReportComponentComponent\default.vm”:找不到资源
我想,由于组件未正确初始化,可能会出现其他问题。
是否可以从另一个组件的 Render 方法中初始化一个组件,使其呈现就像从 .vm 调用一样?