2011-01-23 65 views
0

情景是这样的 ...我转到了我的web应用程序的登录屏幕。我用错误的用户名/密码登录。我在我的HTML中为tab-6 @ HTML.Partial(“../../ Account/Register”)得到一个错误,因为RegisterModel没有被传入(下面的确切错误)。嗯,我没有做任何与注册屏幕上,只是登录。MVC项目,错误,因为模型没有传递到视图?

但是,我认为问题是因为注册部分总是加载。所以我在想,我不需要通过LogOnModel和RegisterModel来解决这个问题,但是可能不应该加载Register页面直到它被专门调用,我想呢?这是正确的做法,我将如何加载注册页面只有当它被调用/点击。我正在使用JQuery UI选项卡和asp.net mvc。

错误: 传递到字典的模型产品类型“Portal.Web.Models.LogOnModel”的,但这种字典需要类型的模型项目“Portal.Web.Models.RegisterModel”。

非常感谢!

<div id="tabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all" style=" position:relative; border:0px;" > 
       <ul class="ui-tabs-nav">       
        <li><a href="#tabs-1" >Home</a></li>       
        <li><a href="#tabs-2" >Statistics</a></li> 
        <li><a href="#tabs-3" >Topo Maps</a></li> 
        <li><a href="#tabs-4" >FAQs</a></li> 
        <li style="display:none;"><a href="#tabs-5">Login</a></li> 
        <li style="display:none;"><a href="#tabs-6">SignUp</a></li> 
       </ul> 
       <div id="tabs-1" class="ui-tabs-hide ui-tabs-panel">@Html.Partial("../Home/Home") </div> 
       <div id="tabs-2" class="ui-tabs-hide ui-tabs-panel">@Html.Partial("../Statistics/Statistics")</div> 
       <div id="tabs-3" class="ui-tabs-hide ui-tabs-panel">@Html.Partial("../Maps/Maps")</div> 
       <div id="tabs-4" class="ui-tabs-hide ui-tabs-panel">@Html.Partial("../Home/FAQs")</div>          
       <div id="tabs-5" class="ui-tabs-hide ui-tabs-panel">@Html.Partial("../Account/LogOn")</div>     
       <div id="tabs-6" class="ui-tabs-hide ui-tabs-panel">@Html.Partial("../Account/Register")</div> 

      </div>  

这里是我的AccountController与行动方法

[HttpPost] 
    public ActionResult LogOn(LogOnModel model, string returnUrl) 
    { 
     if (ModelState.IsValid) 
     { 
      if (MembershipService.ValidateUser(model.UserName, model.Password)) 
      { 
       FormsService.SignIn(model.UserName, model.RememberMe); 
       if (Url.IsLocalUrl(returnUrl)) 
       { 
        return Redirect(returnUrl); 
       } 
       else 
       { 
        return RedirectToAction("Index", "Home"); 
       } 
      } 
      else 
      { 
       ModelState.AddModelError("", "The user name or password provided is incorrect."); 
      } 
     } 

     return View(model); 
    }  

的要求下面是额外的代码:

public ActionResult LogOn() 
    { 
     return View(); 
    } 
+0

显示从登录我们采取行动的代码,一些加载未发生视图时,当您返回在后行动 – Jimmy

+0

我加在底部的GET操作的视图发生的事情。谢谢 – KeelRisk

回答

0

仔细检查你设置你的部分观点,以继承适当的模型。在你的部分视图代码的顶部,你应该有一个这样的线。

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Portal.Web.Models.LogOnModel>" %> 
+0

是的,在我的登录视图中,我有LogOnModel,在我的注册视图中,我有RegisterModel。所以在那里一切都好。 – KeelRisk

相关问题