2012-02-20 25 views
0

我有點卡住,我將如何去將MVC3 C#中的登錄表單移動到自創的 佈局頁面,這是在HTML中完成的,因此我可以將登錄表單放入我的佈局而不是點擊登錄鏈接?我在我的HTML設計中有一個框,我希望LOGIN頁面出現在這裏。這是可能的。如果有任何你需要的人請提前告訴我,謝謝。因此,一般來說,當我運行我的MVC3 c#應用程序時,我的登錄表單出現在首先出現的同一頁上,這是我的佈局頁面。我的控制器有以下代碼:如何將LoginForm移動到另一個地方

namespace TestProject.Controllers 
{ 
    public class ViewDeveloperController : Controller 
    { 
     public ActionResult Index() 
     { 
      using (var db = new GameZoneEntities5()) 
      { 
       return View(db.tblDevelopers.ToList()); 
      } 
     } 

    } 
} 

我不知道這是否會有所幫助,如果還有其他問題請詢問。

+0

我們需要視圖代碼,而不是控制器。 – 2012-02-20 03:45:03

回答

1

爲此使用子操作。一個兒童行動基本上就像一個正常的行動,除了它返回一個PartialView而不是一個View,你可以把它看作是一個頁面的可重用部分,其背後有一些邏輯。然後,您只需通過RenderActionHTML幫助程序方法讓佈局頁面呈現子操作即可。

所以,你的代碼可能是這個樣子

public class AccountController 
{ 
    public ActionResult LogOn() 
    { 
     return PartialView(); 
    } 
} 

而且你_Layout.cshtml將只需要有下面的代碼來呈現在你希望你的登錄控制出現的地方的孩子動作。

@{ Html.RenderAction("LogOn", "Account" }); } 

您的LogOn視圖剃鬚刀代碼只會看起來像正常。

一旦你有這樣的工作,這將是很容易做出一些改進,比如具有LogOn兒童行動顯示LogOut視圖如果用戶已經登錄,或使用JQuery有登錄表單POST通過AJAX結果使UI更好。

+0

局部視圖public class去哪裏?什麼是返回?從返回函數謝謝 – user1137472 2012-04-09 02:35:11

+0

PartialView實際上是一個內置於Controller類中的方法(您的控制器將從其繼承) - 它的作用基本與'return View();'相同(也是控制器的一種方法)但是當你想將某些東西僅僅作爲頁面的一部分而不是整個頁面來使用時,你就可以使用它。 – StanK 2012-04-16 00:34:40

相關問題