C#MVC将一个局部视图替换为另一个局部视图
我正在使用MVC构建一个网站,我希望它在导航栏的顶部有一个小盒子,用户可以登录到他的帐户。头部导航栏是一个布局页面,与我拥有的所有视图共享,登录的部分视图在布局中呈现 这是具有局部视图放置的布局:C#MVC将一个局部视图替换为另一个局部视图,c#,ajax,asp.net-mvc,partial-views,C#,Ajax,Asp.net Mvc,Partial Views,我正在使用MVC构建一个网站,我希望它在导航栏的顶部有一个小盒子,用户可以登录到他的帐户。头部导航栏是一个布局页面,与我拥有的所有视图共享,登录的部分视图在布局中呈现 这是具有局部视图放置的布局: <nav class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> @Html.ActionLin
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
@Html.ActionLink("חנות השיגועים של האחים וויזלי", "Master", "Home", new { area = "" }, new { @class = "navbar-brand" })
</div>
<ul class="nav navbar-nav">
<li>@Html.ActionLink("בית", "Master", "Home")</li>
<li>@Html.ActionLink("אודות", "About", "Home")</li>
<li>@Html.ActionLink("צור קשר", "Contact", "Home")</li>
<li>@Html.ActionLink("סל קניות", "Cart", "Home")</li>
<li>@Html.ActionLink("פרופיל", "UserProfile", "Home")</li>
<li>@Html.ActionLink("הרשמה", "Register", "Account")</li>
</ul>
@*<ul class="nav navbar-nav navbar-right">
<li>*@
<div id="PartialPlace">
@Html.Partial("_LoginPartial")
</div>
@*</li>
</ul>*@
</div>
</nav>
<div class="container body-content">
@RenderBody()
<img src="~/Assets/Site_Background.jpg" alt="Weasly Shop" id="BkgImage" class="bg"/>
<hr />
<footer>
<p>© @DateTime.Now.Year - My ASP.NET Application</p>
</footer>
</div>
我想做的是,当用户按下版面中登录部分中的登录按钮时,只有部分视图将刷新,并向用户显示此部分视图,用户可以在其中发布广告:
<div class="container">
<div class="jumbotron" id="LoginFloat">
<h5>Hello @Model.UserName</h5>
<button class="btn btn-warning" onclick="">Advertise!</button>
<br />
<input type="submit" name="LogOff" value="LogOff" />LogOff
</div>
你好@Model.UserName
做广告
注销
我尝试使用Ajax.Actionlink和替换动作,但我不知道如何使用它。我应该在布局页面或登录partialView或where中使用它吗?这似乎是一个非常弱的身份验证IMHO…现在,不是
返回partialView(“_LogedInPartial”)
您需要返回另一个部分视图……同样在您的ajax操作链接中,您应该使用UpdateTargetId=“PartialPlace”
来更改它。是的,身份验证现在不困扰我。在控制器中,我应该返回另一个局部视图:_LoginPartialView?另外,Ajax.ActionLink应该在_LoginPartialView中,这将替换布局页面中的partialView?好的,\u LoginPartial
呈现登录表单…现在可以发布另一个视图的名称了吗?最后一个代码部分是我要替换第一个的另一个partialView的代码。我称之为:_logedinparticle,您只需要返回PartialView(“_logedinparticle”)
形成你的控制器方法,并在你的AjaxOptions
中放置UpdateTargetId=“PartialPlace”
,它应该呈现为将登录表单替换为广告视图。这似乎是一个相当弱的身份验证IMHO…现在,它不是返回PartialView(“\u LogedInPartial”)
您需要返回另一个部分视图……同样在您的ajax操作链接中,您应该使用UpdateTargetId=“PartialPlace”
来更改它。是的,身份验证现在不困扰我。在控制器中,我应该返回另一个局部视图:_LoginPartialView?另外,Ajax.ActionLink应该在_LoginPartialView中,这将替换布局页面中的partialView?好的,\u LoginPartial
呈现登录表单…现在可以发布另一个视图的名称了吗?最后一个代码部分是我要替换第一个的另一个partialView的代码。我称之为:_logedinparticle,您只需要返回PartialView(“_logedinparticle”)
形成您的控制器方法,并在AjaxOptions
中放置UpdateTargetId=“PartialPlace”
,该属性应呈现为将登录表单替换为广告视图。
[HttpPost]
public ActionResult Login(string UserName, string Password)
{
using (AspStoreDBEntities1 db = new AspStoreDBEntities1())
{
if (ModelState.IsValid)
{
foreach (var user in db.Users)
{
if (user.UserName == UserName && user.Password == Password)
{
FormsAuthentication.SetAuthCookie(UserName, true);
return PartialView("_LogedInPartial");
}
}
}
return View();
}
}
<div class="container">
<div class="jumbotron" id="LoginFloat">
<h5>Hello @Model.UserName</h5>
<button class="btn btn-warning" onclick="">Advertise!</button>
<br />
<input type="submit" name="LogOff" value="LogOff" />LogOff
</div>