[英]Partial view not rendered with RenderAction
在用戶使用表單身份驗證登錄后,我想在頁面的右上角顯示一些用戶詳細信息。
登錄信息將在每個頁面(布局頁面的一部分)上重復使用。
我創建了一個控制器和partialview,它將使用RenderAction調用進行渲染。 如果運行Web應用程序,則看不到HTML呈現。 我確實看到了控制器被調用,但是函數沒有被...。
(注意:ExtendedController派生自ASP.NET MVC的Controller類)
控制器:
public class LoginInfoController : ExtendedController
{
private IDependencyFactory factory;
public LoginInfoController(IDependencyFactory factory)
: base(factory)
{
this.factory = factory;
}
[ChildActionOnly]
public PartialViewResult UserInfo()
{
var viewModel = new LogonInfoViewModel
{
Fullname = "Patrick Peters"
};
return PartialView(viewModel);
}
}
_Layout.cshtml:
<div class="span2 offset7">
<div class="bottom">
@{Html.RenderAction("UserInfo", "LoginInfo");}
</div>
</div>
_LoginInfo.cshtml:
<div class="user" style="text-align: right">
<cut HTML....>
</div>
嘗試以下方法:
[ChildActionOnly]
public PartialViewResult UserInfo()
{
var viewModel = new LogonInfoViewModel
{
Fullname = "Patrick Peters"
};
return PartialView("_LoginInfo", viewModel); // <-- change is in this line
}
當您調用return PartialView(viewModel)
,MVC假定您的視圖名稱將與控制器的views文件夾中的操作方法名稱相同。 如果將“ _LoginInfo.cshtml”重命名為“ UserInfo.cshtml”,並確保它位於Views / LoginInfo文件夾中,則您的解決方案應該可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.