2012-06-05 72 views
0

我正在使用ASP.NET,MVC3,Razor。在我的網站中,我在所有頁面上都有登錄表單(頂部標題),用戶可以隨時登錄。當另一個表單帶有另一個表單時,問題就出現了。我無法弄清楚如何實現這一點。我嘗試了很多,但我想我需要一個非常小的例子來解決我的問題。這個例子可以像在同一頁面上的註冊表單和登錄表單一樣簡單,並且它們分別工作,所有的驗證和其他內容。登錄表單和註冊表單可以是部分視圖或某些人可以建議的可重用的任何內容。ASP.NET MVC 3 Razor - 註冊和登錄表單在同一頁面/視圖

這裏的_Register.cshtml(共享視圖)

@model MVCRnD.Models.RegisterModel

@using (Html.BeginForm("Register","Account")) { 

} 

代碼爲about.cshtml的代碼在其上面的共享視圖置於

@Html.Partial("_Register") 

代碼賬戶控制器

[HttpPost]

public ActionResult Register(RegisterModel model) 
    { 
     if (ModelState.IsValid) 
     { 
      // Attempt to register the user 
      MembershipCreateStatus createStatus; 
      Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus); 

      if (createStatus == MembershipCreateStatus.Success) 
      { 
       FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */); 
       return RedirectToAction("Index", "Home"); 
      } 
      else 
      { 
       ModelState.AddModelError("", ErrorCodeToString(createStatus)); 
      } 
     } 

     // If we got this far, something failed, redisplay form 
     return View(model); 
    } 

The partia l視圖,即註冊表格呈現正常。但是,當我點擊提交按鈕時,它會發布整個表格,但帶我到註冊/帳戶/註冊,這實際上是正確的。但我想在同一頁面上,而不是去其他形式。你想讓我發送完整的代碼嗎?我可以在某處上傳它並將鏈接發送給你。

+0

看看我的答案在這裏: [登錄並在同一頁上報名登記表] [1] [1 ]:http://stackoverflow.com/a/17860676/1791760 – Lars

回答

0

不知道你爲什麼會遇到問題,但不管你使用什麼服務器端語言,在同一頁面上放置兩個表單是非常普遍的做法。

@using (Html.BeginForm("Logon", "Account")) { 
    ... 
} 

@using (Html.BeginForm("Register", "Account")) { 
    ... 
} 

翻譯爲:

<form action="/Account/Logon" method="post">   
    ... 
</form> 

<form action="/Account/Register" method="post">   
    ... 
</form> 
+1

我同意,我可以很容易地在經典的ASP或ASP.NET與Web窗體。你可以將它轉換爲MVC剃鬚刀引擎語法和控制器代碼嗎? – Neeraj

+0

對不起,更新了我的答案。 – Terry

+0

謝謝特里,但我仍然無法獲得我的目標。我創建了一個MVC互聯網應用程序,它提供了註冊和登錄視圖及其模型。然後,我使用與登錄和註冊視圖中相同的代碼創建了2個部分視圖。現在,我試圖將這兩個空間視圖放在1頁中,關於頁面。意見不起作用。有時驗證不起作用,有時會發布。任何人都可以給我一個在一個頁面上處理2個部分視圖的實例的鏈接。我會非常感謝。 – Neeraj

相關問題