0

我从未使用过 actionfilter,所以我真的不知道如何使用它,我做过一些研究,但我不完全理解它。但基本上我要创建一个新控制器,我希望我的 _Viewstart.cshtml 使用这个控制器。问题是我不知道如何将此代码用于操作过滤器,然后在 _viewstart 中调用此控制器。

我想要在我的控制器中的代码是。

var TemplateIDSession = Session["TemplateID"];
if (TemplateIDSession != null)
{
int tempID = (int)TemplateIDSession;
var template = servicetemp.GetEntry(tempID);
var servicetemp = ServiceFactory.Instance.CreateTemplateService();

Response.ContentType = "text/css";
return RazorEngine.Razor.Parse(System.IO.File.ReadAllText(Server.MapPath("Content/Site.css")));
4

1 回答 1

0

我认为你应该以不同的方式解决这个问题,通过对 CSS 使用 HTML Helper,如下所示:

public static class Helpers
{
    public static string OrganizationStyleTemplate(this HtmlHelper html)
    {
        TagBuilder tagBuilder = new TagBuilder("style");

        var templateIDSession = HttpContext.Current.Session["TemplateID"];

        if (TemplateIDSession != null)
        {
            // retrieve your css from the database and insert it into the tag
            tagBuilder.InnerHtml = dbObject.CSSYouveStored;
        }

        return tagBuilder.ToString(TagRenderMode.Normal);
    }
}

那么用法会是这样的:

@Html.OrganizationStyleTemplate()

PS如果您需要分析用户是否在该方法中进行了身份验证,请使用:

HttpContext.Current.Request.IsAuthenticated
于 2013-05-23T21:35:58.237 回答