如何将登录表单移动到另一个地方

时间:2012-02-20 02:13:30

标签: c# asp.net asp.net-mvc-3 html5 razor

我有点陷入困境,我怎样才能将MVC3 C#中的登录表单移动到自己创建的 布局页面是用HTML完成的,所以我可以在我的布局中定位登录表单而不是点击登录链接?我的HTML设计中有一个框,我希望LOGIN页面出现。这是可能的。如果您有任何需要的人请提前告知我们,谢谢。因此,一般来说,当我运行我的MVC3 c#应用程序时,我的登录表单出现在首先出现的同一页面上,即我的布局页面。我的控制器有以下代码:

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

    }
}

我不知道如果有什么其他内容请帮助我们。

1 个答案:

答案 0 :(得分:1)

为此使用子操作。 Child Action基本上就像一个普通的动作,除了它返回PartialView而不是View,您可以将其视为页面的可重用部分,其背后有一些逻辑。然后,您需要做的就是通过RenderAction HTML帮助程序方法让布局页面呈现子操作。

所以,你的代码可能看起来像这样

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

您的_Layout.cshtml只需要使用以下代码在您希望登录控件显示的位置呈现子操作。

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

您的LogOn视图剃刀代码看起来很正常。

一旦你有了这个工作,就可以很容易地进行一些改进,例如如果用户已经登录,LogOn子动作显示LogOut视图,或者使用JQuery拥有LogOn表单通过AJAX POST结果,使UI更好。