我们将CodeEffects规则编辑器嵌入到MVC View中。
编辑器在编辑规则时运行良好,但在提交时,编辑器RuleModel对象不会在服务器端的动作控制器中实例化/绑定(Null引用异常)。我们的代码如下:
在视图中:
<div class="clear" style="margin-top: 20px">
@{
Html.CodeEffects().RuleEditor()
.Id("ruleEditor")
.ShowToolBar(false)
.Rule(Model.Rule)
.Mode(RuleType.Evaluation)
.Render();
}
</div>
在控制器中:
public ActionResult UpdateRuleSet(CreateRuleSetModel model, RuleModel ruleEditor, RuleModel ruleEditorExceptions, string submit, FormCollection form)
{
//ruleEditor object is null (not being properly bound from form?)
//ruleEditorExceptions model is instantiated properly
...
}
我们在复制此错误时遇到问题,因为它只发生在某些服务器系统而非其他服务器系统上(某些测试环境以及一个实例中的生产 - 从未在本地发生)。 规则的复杂性在这个问题上没有任何价值(可以是简单的规则)。
奇怪的是,应用程序池回收停止了问题,编辑器再次开始工作(与之前破坏应用程序的规则相同)。 此外,规则可以在一个客户端(浏览器)上破坏应用程序,而其他浏览器可以同时保存相同的规则(同时)。
目前我们怀疑客户端(表单提交)但无法确认(并且池回收解决方案只是增加了神秘感。)
我们使用CodeEffects.Rule.dll版本4.1.2.6。 (在.NET 4.0框架上)。
非常感谢任何指导(CE更新除外)。
答案 0 :(得分:0)
您的HTML和MVC操作签名很好。由于问题的性质,其描述相当广泛。我从来没有听说过这样的事情。 CodeEffects的安装可以处理数十万条没有问题的规则。我们需要更多细节来帮助您。显然,任何日志,堆栈或异常信息都会有所帮助。