为什么Razor HTML部分视图不会在'If'阻止之间呈现?

时间:2013-11-11 07:16:40

标签: asp.net-mvc-4 razor

我正在尝试基于ViewBag条件渲染Razor html部分视图,但我总是得到补偿错误。

 @{

     if (ViewBag.Auth)
     {
        @Html.RenderPartial("_ShowUserInfo")
     }

 }

我也试过......

 @if (ViewBag.Auth)
 {
    @Html.RenderPartial("_ShowUserInfo")
 }

Error message:
Compiler Error Message: CS1502: The best overloaded method match for                  
'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' 
has some invalid arguments

2 个答案:

答案 0 :(得分:6)

您需要将ViewBag.Auth投射到boolean

 @if ((bool)ViewBag.Auth)
 {
    @{ Html.RenderPartial("_ShowUserInfo");  } 
 }

此外,您需要在@{ }

中使用RenderPartial语法

答案 1 :(得分:3)

尝试使用这样的..

@if (ViewBag.Auth)
 {
    @{ Html.RenderPartial("_ShowUserInfo") }
 }