Подтвердить что ты не робот

Css3pie в MVC, где разместить файл pie.htc?

Я пытаюсь использовать Css3pie в моем проекте MVC для создания округленной угловой панели, но пока не повезло.

Я следую образцу с нормальной html-страницей, и он отлично работает, но не в моем проекте MVC. Я думаю, что это связано с путём файла pie.htc, который запутывается в MVC

Я размещаю файл pie.htc в папке проекта (root) и в моем файле css, я использую: поведение: url (/PIE.htc);

Я думаю, что маршрутизатор MVC необходимо изменить, чтобы принять расширение htc файла? Извините im new с MVC. Кто-нибудь пробовал pie.htc и работал ли он в проекте MVC, пожалуйста, помогите?

Спасибо!

4b9b3361

Ответ 1

Как побочная заметка (и, возможно, она все равно исправит вашу проблему), если вы не хотите иметь файл .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 из правильного местоположения.

Ответ 2

Добавьте следующее к RegisterRoutes(RouteCollection routes) методу Global.asax файла

routes.IgnoreRoute("pie.htc");

Ответ 3

В вашей таблице стилей добавьте следующий behavior:

behavior: url("/Content/PIE/PIE.css")