Php 是否有一个「;“包括一次”;ASP.net razor的功能?

Php 是否有一个「;“包括一次”;ASP.net razor的功能?,php,asp.net,razor,Php,Asp.net,Razor,在php中有include\u once。我希望能够用asp.net的@Html.Partial做同样的事情。有内置功能吗?我认为ASP.NET中没有此类功能,但您可以编写自己的: public static class HtmlPartialHelper { public static MvcHtmlString PartialOnce(this HtmlHelper htmlHelper, string partialViewName) { if (!html

在php中有
include\u once
。我希望能够用asp.net的
@Html.Partial
做同样的事情。有内置功能吗?

我认为ASP.NET中没有此类功能,但您可以编写自己的:

public static class HtmlPartialHelper
{
    public static MvcHtmlString PartialOnce(this HtmlHelper htmlHelper, string partialViewName)
    {
        if (!htmlHelper.ViewContext.RequestContext.HttpContext.Items.Contains(partialViewName))
        {
            htmlHelper.ViewContext.RequestContext.HttpContext.Items.Add(partialViewName, ""); //any value is good...
            return htmlHelper.Partial(partialViewName);
        }

        return null; //May be string.Empty is better
    }

    public static bool RenderPartialOnce(this HtmlHelper htmlHelper, string partialViewName)
    {
        if (!htmlHelper.ViewContext.RequestContext.HttpContext.Items.Contains(partialViewName))
        {
            htmlHelper.ViewContext.RequestContext.HttpContext.Items.Add(partialViewName, "");
            htmlHelper.RenderPartial(partialViewName);

            return false;
        }

        return true;
    }
}

我不是PHP专家,但我希望返回值正确…

只需调用
Html.Partial
。。。一旦