我使用Identity使用默认模板ASP.NET MVC 5项目。我已成功将Google Oauth链接到我的应用程序并且我能够登录,但我尝试修改navbar
以从/Account/Login
替换登录链接以登录Google直接来自第一个主页中的navbar
。
我当前的_LoginPartial.cshtml
ul class="nav navbar-nav navbar-right">
@* <li>@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>*@
<li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
</ul>
我该怎么做?
提前致谢。
答案 0 :(得分:0)
创建一个名为_ExternalLogIn.cshtml的新局部视图。在_LogInPartial.cshtml中,只需在此问题中注释您在上面编写的代码,并像这样调用部分视图,
<ul class="nav navbar-nav navbar-right">
@Html.Partial("_ExternalLogIn",new ExternalLoginListViewModel())
</ul>
在这里看到您可能会收到ExternalLoginListViewModel()的错误。因此,您需要在页面顶部添加引用,如下所示,
@using MyProject.Web.Models
然后在你的_ExternalLogIn局部视图中写这样的,
@model MyProject.Web.Models.ExternalLoginListViewModel
@using Microsoft.Owin.Security
@{
var loginProviders =
Context.GetOwinContext().Authentication.GetExternalAuthenticationTypes();
if (loginProviders.Count() != 0)
{
using (Html.BeginForm("ExternalLogin", "Account", new { ReturnUrl =
Model.ReturnUrl }))
{
@Html.AntiForgeryToken()
foreach (AuthenticationDescription provider in loginProviders)
{
if (provider.AuthenticationType == "Facebook")
{
<li>
<div class="form-group">
<button type="submit" class="btn btn-block btn-social
btn-gplus" name="provider"
id="@provider.AuthenticationType"
value="@provider.AuthenticationType"
style="width:100%;text-align:left;border-
radius:0px;color:white">
</button>
</div>
</li>
}
}
根据您的要求更改css。欢呼声。