2011-01-23 86 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

相關問題