TransWikia.com

Как добавить css файл к html странице в ASP.Net проекте?

Stack Overflow на русском Asked on August 7, 2020

Изучаю книгу по ASP.Net MVC 4. Проект создаваемый средой VS в книге немного отличается от моего так как устарел. По книжной инструкции я должен добавить таблицу стилей добавив строку:

<link rel="stylesheet" type="text/css" href="~/Content/Site.css" />

Но перепробовав все известные мне варианты таблица остается невидимой.

@model WebApplication1.Models.FirstModel
@{
    Layout = null;
}

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>RsvpForm</title>

    <link rel="stylesheet" type="text/css" href="~/Content/Site.css" />
    <link rel="stylesheet" type="text/css" href=@Href("~/Content/Site.css") />
    <link rel="stylesheet" type="text/css" [email protected]("~/Content/Site.css") />
</head>
<body>
    @using (Html.BeginForm())
    {
        @Html.ValidationSummary()

        <p>Your name: @Html.TextBoxFor(x => x.Name) </p>
        <p>Your email: @Html.TextBoxFor(x => x.Email)</p>
        <p>Your phone: @Html.TextBoxFor(x => x.Phone)</p>
        <p>
            Will you attend?
            @Html.DropDownListFor(x => x.WillAttend, new[] {
            new SelectListItem() {Text = "Yes, I'll be there", Value = bool.TrueString},
            new SelectListItem() {Text = "No, I can't come", Value = bool.FalseString}
            }, "Choose an option")
        </p>
        <input type="submit" value="Submit RSVP" />
    }
</body>
</html>

Так выглядит обозреватель:

введите сюда описание изображения

Так выглядит окно браузера:

введите сюда описание изображения

2 Answers

По умолчанию статические файлы хранятся в папке wwwroot.

Если вы хотите указать свою папку, вы должны переопределить путь в файле Program.cs Для этого вам необходимо добавить .UseWebRoot("Content").

Выглядит примерно так:

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()          
            .UseWebRoot("Content")   
            .Build();
}

После этого вы можетк обращаться к статическим файлам, только теперь они будут браться из папки Content, а не из wwwroot.

Answered by Дмитрий on August 7, 2020

В файле Startup.cs нужно подключить статику:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseStaticFiles();
}

А, требуется ASP.NET MVC 4, не сразу заметил. Но скорее всего там так же.

Answered by Make Makeluv on August 7, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP