0

Razor エンジンを使用した動的 CSSの例を使用しており、次のものがあります。

これは私の_Layout.cshtmlにあります:

<link href="@Url.Action("Index", "Css")" rel="stylesheet" type="text/css" />

これは私のCssControllerです:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RazorEngine;

namespace SuburbanCustPortal.Controllers
{
    public class CssController : Controller
    {
        //
        // GET: /Css/

        public string Index(string id)
        {
          Console.WriteLine("id: " + id);
          Response.ContentType = "text/css";
          return Razor.Parse(System.IO.File.ReadAllText(Server.MapPath("/Content/Site.css")));
        }

    }
}

私の問題は、最初にサイトにアクセスしたときに渡される GUID (ID) で保留中の特定の CSS ファイルを読み込む必要があることです。上記のインデックスの ID は null として出力されますが、読み込み中です。

例:

mysite.com/account/login/xxxx-xxxx-xxxx-xxxx/

そのGUIDに基づいてcssをロードする必要があります。

_Layout.cshtml からその値を取得することは可能ですか、またはこれを処理する別の方法はありますか?

4

1 に答える 1

1

その Guid をセッションに入れることができます:

アカウント コントローラー:

public ActionResult LogIn(Guid identifier)
{
     Session["Identifier"] = identifier;
     return View();
}

レイアウト:

<link href="@Url.Action("Index", "Css", new { id = Session["Identifier"] })" rel="stylesheet" type="text/css" />

CSS コントローラー:

public string Index(Guid id)
    {
      Console.WriteLine("id: " + id);
      Response.ContentType = "text/css";
      return Razor.Parse(System.IO.File.ReadAllText(Server.MapPath("/Content/Site.css")));
    }

任意のコントローラーからいつでもセッション変数を変更できます

于 2012-12-15T13:46:18.933 に答える