当前位置:  开发笔记 > 编程语言 > 正文

无效控制器时的StructureMap错误

如何解决《无效控制器时的StructureMap错误》经验,为你挑选了1个好方法。

我正在使用像Rob Conery那样的MVC店面的结构图,我有一个AdminController,所以我只需输入:

website/Admin/action

但如果我拼错控制器名称,我会收到以下错误:

异常详细信息:System.ArgumentNullException:Value不能为null.参数名称:key

此行发生错误:

Controller controller = ObjectFactory.GetInstance(controllerType) as Controller;

有没有人对我如何处理这个错误有任何想法,或者根本不允许它发生,也许只是转到404页面?

提前干杯



1> Andrew Stant..:

问题是如果没有具有预期类型名称的控制器(即,如果用户键入" Amdin ",则ControllerFactory基类将查找" Amdin控制器"并且将找不到它,但仍将调用您的覆盖方法).在这种情况下,controllerType变量将为null.所以你可以在你引用的行之前检查它为null,然后(如果它为null):

A)实施拼写修正,例如cfeduke建议

或者B)简单地抛出一个状态代码为404的HttpException(这应该会导致你正在寻找的404错误).

注意:如果你进行了拼写纠正,你应该做一个Response.Redirect到新的URL,而不是只是静默加载正确的控制器,这样地址栏改变以反映拼写纠正

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有