2016-04-04 2 views
-1

В/родовом HTML по умолчанию, представленном в приложении ASP.NET, домашняя страница отображаются с HTML в Index.cshtml, который начинается из:Почему класс Bootstrap не применяется?

<div class="jumbotron"> 
    <h1>ASP.NET</h1> 
    <p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS, and JavaScript.</p> 
    <p><a href="http://asp.net" class="btn btn-primary btn-lg">Learn more &raquo;</a></p> 
</div> 

Это создает «jumbotronified» раздел в верхнем страницы с большим «ASP.NET» внутри нее.

Однако, когда я пытаюсь использовать этот класс начальной загрузки CSS ("JumboTron") в другом месте:

StringBuilder builder = new StringBuilder(); 
builder.Append("<html>"); 
builder.Append("<head>"); 
builder.Append("<title>"); 
builder.Append(string.Format("Available Delivery Performance Reports For 
{0}", unit)); 
builder.Append("</title>"); 
builder.Append("</head>"); 
builder.Append("<body>"); 

builder.Append("<div class=\"jumbotron\">"); 
builder.Append(String.Format("<h1>{0}</h1>", unit.ToUpper())); 
builder.Append("</div>"); 
. . . 
builder.Append("</table>"); 
builder.Append("</body>"); 
builder.Append("</html>"); 

return builder.ToString(); 

я не получаю ничего особенного - jumbotronned h1 визуализируется, но без JumboTron "эффект" I что если классы начальной загрузки доступны из одного места в проекте, они будут доступны в любом месте проекта. Что мне нужно сделать, чтобы ввести этот динамический html в подсистему загрузки?

+2

Я не вижу ** bootstrap.min.css ** и ** bootstrap.min.js ** внутри StringBuilder. – Win

+0

как вы включили библиотеку начальной загрузки? – Aziz

+0

@Aziz: Я думал, что он уже включен, поскольку он используется на главной странице. –

ответ

0

Это (ссылки начальной загрузки и JQuery CDNs) работает:

. . . 
builder.Append("</title>"); 
builder.Append("<link href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css' rel='stylesheet' />"); 
builder.Append("<script src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js'></script>"); 
builder.AppendFormat("<script src=\"https://code.jquery.com/jquery-1.12.2.min.js\" integrity=\"sha256-lZFHibXzMHo3GGeehn1hudTAP3Sc0uKXBXAzHX1sjtk=\" crossorigin=\"anonymous\"></script>"); 
builder.Append("</head>"); 
. . . 
3

Похоже, вы генерируете CSS для всей новой страницы (то есть той, которая не наследуется от макета и не является частичным видом).

Если это так, то вам нужно будет явно ссылки вашего Bootstrap файлов в этой новой генерируемой странице для того, чтобы применять их правильно:

Вы могли бы использовать что-то вроде:

// Example of adding in Bootstrap CSS 
builder.AppendFormat("<link href='{0}' rel='stylesheet' />", Url.Content("~/Style/bootstrap.min.css")); 
// Example of appending jQuery JS 
builder.AppendFormat("<script src='{0}'></script>",Url.Content("~/Scripts/jquery.min.js")); 
// Example of appending Bootstrap JS 
builder.AppendFormat("<script src='{0}'></script>",Url.Content("~/Scripts/bootstrap.min.js")); 
builder.Append("</head>"); 

Традиционно эти файлы будут ссылаться в макете или в разделе <head> обычного вида, однако, поскольку вы вручную создаете весь контент HTML в своем StringBuilder, вам также необходимо указать любые ссылки.

+0

«Содержимое» не имеет члена «Url» для меня ... –

+0

Это была опечатка, извините. Это должно быть [** Url.Content **] (https://msdn.microsoft.com/en-us/library/system.web.mvc.urlhelper.content (v = vs.118) .aspx). –

+0

То же самое с Url.Content. «Веб-сайт». только дает мне «Равные» и «ReferenceEquals». «Url», который распознается/автоматически используется, - «System.Security.Policy.Url» Является ли другой, который я должен использовать? –

Смежные вопросы