在ASP.NET MVC 4中设置TwitterBootstrap

11

这是我目前为止所做的:

1)在VS2012中创建新的ASP.NET MVC 4项目。

2)选择“Internet应用程序”模板(包括成员身份和实体框架)。

3)测试它,它可以正常工作。

4)使用包管理器运行:

> Install-Package twitter.bootstrap.mvc4
> Install-Package twitter.bootstrap.mvc4.sample

5)在“_ViewStart.cshtml”中,更改

Layout = "~/Views/Shared/_Layout.cshtml" 

Layout = "~/Views/Shared/_BootstrapLayout.basic.cshtml"
很不幸,当我现在运行它时,我会得到以下错误:
The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/_BootstrapLayout.basic.cshtml": "featured".

我刚接触 ASP.NET,不太清楚发生了什么以及为什么会这样。有什么想法吗?

作为第二个问题,一旦我解决了这个问题,我该如何在 http://wrapbootstrap.com 上安装一个模板呢?我似乎找不到任何关于如何在 ASP.NET 中执行此操作的说明。


1
你应该把你的第二个问题直接写成另一个问题。简单的回答是,你不能仅仅将其放置其中因为它是为Bootstrap而设计,而不是为ASP MVC。你需要做一些工作来让这些模板能够正常工作。如果你发布一个新问题,那么你可能会得到更好的建议。 - Peter
一个一般的建议:你可能会发现一个库TwitterBootstrapMvc很有用。 - Dmitry Efimenko
3个回答

13

在您的Home/index.cshtml文件中,定义了一些未包含在Bootstrap布局中的部分。

要么将它们添加到新布局中(请参见Shared/_Layout.cshtml文件,查找名为“featured”的内容),要么从index.cshtml文件中删除它们。

作业:请查询如何在ASP.MVC中定义部分。


1
我不得不修改 \Views\Home\Inbox.cshtml 并注释掉 @section featured 块。 - Ludwo
Bootstrap的“开箱即用”解决方案需要更像一个真正的“开箱即用”的解决方案。显然,理解各个部分是很有帮助的,但修复本应有效的代码不应该要求用户做功课。 - hanzolo
hanzolo,请参考BillH的答案,了解您需要的解决方案类型。请查看我的答案,了解为什么会出现错误,并对如何使用ASP.MVC中的部分进行作业,以理解所抛出的错误。我的答案是完整准确的,回答了问题,不要求世界应该是某种方式。 - Peter

7

也许对于原帖发布者来说已经太晚了,但我认为更好的解决方案是从一个空的MVC 4项目开始。这样,您就不必删除任何内容。

1) Start with an empty ASP.NET MVC 4 project.
2) Using the package manager, run:

    install-package twitter.bootstrap.mvc4
    install-package twitter.bootstrap.mvc4.sample

这在我的VS2012上编译和运行良好。

我觉得这是示例代码最初的安装方式。


4
_BootstrapLayout.basic.cshtml 文件中,验证您是否在 @RenderSection 中包含了 "featured"。
<head>
    <meta charset="utf-8">
    <title>@ViewBag.Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="@Styles.Url("~/content/css")" rel="stylesheet"/>
    @RenderSection("featured", required: false)
    @Html.Partial("_html5shiv")
</head>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接