簡體   English   中英

未使用RenderAction呈現的部分視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM