首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC错误的视图/模型被调用

MVC错误的视图/模型被调用
EN

Stack Overflow用户
提问于 2014-12-30 12:29:11
回答 2查看 274关注 0票数 0

我有一个mvc4应用程序,它在常规场景中运行得很好。

然而,在我将描述的场景中,我得到了以下bug:

代码语言:javascript
复制
The model item passed into the dictionary is of type
softWrench.sW4.Web.Models.LoginHandler.LoginHandlerModel', but this dictionary
requires a model item of type 'softWrench.sW4.Web.Models.Home.HomeModel'.

复制它(仅在FF或IE上)

  1. 登录到应用程序(它调用LoginController和LoginModel,然后立即重定向到HomeController/HomeModel)
  2. 点击backspace/back按钮->用户返回登录页面
  3. 再次尝试使用错误的用户名/密码对登录。在正常情况下,这只会在屏幕上带来错误信息,但这里我得到了异常。

在我看来,由于某种原因,mvc调用的是HomeController的HomeController,而不是IndexController的.

然而,在Chrome上,当我点击后台时,我会自动重定向到HomeController,而不是登录页面,因此没有办法复制它。原因是,显然chrome在返回空间被击中时会向LoginController发出额外的服务器请求,而这在FF和IE上根本不会发生;由于用户仍然经过身份验证,我将在该额外请求上将他重定向到HomeController;如果FF和IE在后台空间上执行了该请求,我也会同意.

我强调,该应用程序运行良好,除了这个后台场景,所以似乎没有任何严重的错误,如打字或错误的模型被调用的代码。

我调试了这个场景,但至今还没有找到任何东西,HomeController没有被调用,只有LoginController,这应该被重定向到它的Index.cshtml .

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-30 12:50:50

最后,我可以修好它。在这里很难完全描述它,为此我感到很抱歉。

我忘了提到,我有一个过激的RazorViewEngine,这是检查用户没有认证返回一个空剃须刀模板。

但是,在我描述的场景中,用户仍然经过身份验证,因此返回错误的剃刀模板而不是null。那个剃须刀模板(Layout.cshtml)是问错型号的罪魁祸首。

我对包含ViewPath的SignIn进行了额外的检查,以返回null,这涵盖了额外的情况。

票数 0
EN

Stack Overflow用户

发布于 2014-12-30 12:47:01

传递到字典中的模型项为softWrench.sW4.Web.Models.LoginHandler.LoginHandlerModel,类型,但此字典需要一个类型为softWrench.sW4.Web.Models.Home.HomeModel的模型项。

此错误仅意味着在需要LoginHandlerModel时传递HomeModel。向视图传递模型与向strongly type绑定视图传递模型不匹配。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27705513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档