12

MVC プロジェクトでCss3pieを使用して角の丸いパネルをレンダリングしようとしましたが、今のところうまくいきません。

通常の html ページでサンプルをたどると、完全に機能しますが、私の MVC プロジェクトでは機能しません。MVCで混乱している「pie.htc」ファイルのパスと関係があると思います

「pie.htc」ファイルをプロジェクト フォルダー (ルート) と css ファイルに配置します。

htc ファイル拡張子を受け入れるように MVC ルーターを変更する必要があると思いますか? 申し訳ありませんが、MVC は初めてです。誰かが pie.htc を試して MVC プロジェクトで動作させたことがありますか?助けてください。

ありがとう!

4

3 に答える 3

16

ルートに .htc ファイルを置きたくない場合は、次の手順を実行して、動作に固有の相対パスの問題を回避できます。それは最も美しい解決策ではありませんが、うまく機能します -

CSS で、動作を次のように定義します。behavior: url(CSS3PIE);

次に、Global.asax.cs に次のコードを記述します。

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    CheckForCSSPIE();
}

private void CheckForCSSPIE()
{
    if (!Regex.IsMatch(Request.Url.ToString(), "CSS3PIE"))
    {
        return;
    }

    const string appRelativePath = "~/Content/css/PIE.htc";
    var path = VirtualPathUtility.ToAbsolute(appRelativePath);
    Response.Clear();
    Response.StatusCode = (int)HttpStatusCode.MovedPermanently;
    Response.RedirectLocation = path;
    Response.End();
}

「CSS3PIE」に一致するリクエストを探して、正しい場所から .htc ファイルを返すだけです。

于 2011-02-02T22:47:34.950 に答える
1

ファイルのRegisterRoutes(RouteCollection routes)メソッドに以下を追加Global.asax

routes.IgnoreRoute("pie.htc");
于 2011-02-02T06:43:30.780 に答える
0

In your stylesheet, add the following behavior:

behavior: url("/Content/PIE/PIE.css")
于 2012-08-03T09:20:20.097 に答える