19

我在使用 Twitter 引导程序启动 MVC4 应用程序时遇到问题。

在 VS 2012 中,我创建了一个新的空 MVC4 应用程序,安装了以下包:

  • 安装包 twitter.bootstrap.mvc4
  • 安装包 twitter.bootstrap.mvc4.sample

似乎是一些与导航路线选项相关的问题,因为我正在浏览这几个教程Link 1Link 2

在阅读有关可能的编译问题的说明时,我重新启动了解决方案,但我收到的错误不是自述文件中的错误,而是集中在NavigationRouteOptionsNavigationRouteFiltersRouteValueDictionary和:FilterTokenHasFilterToken

'System.Web.Routing.RouteValueDictionary' does not contain a definition for 'HasFilterToken' and no extension method 'HasFilterToken' accepting a 
first argument of type 'System.Web.Routing.RouteValueDictionary' could be found (are you missing a using directive or an assembly reference?)   
...\AdministrationRouteFilter.cs    18  

'System.Web.Routing.RouteValueDictionary' does not contain a definition for 'FilterToken' and no extension method 'FilterToken' accepting a 
first argument of type 'System.Web.Routing.RouteValueDictionary' could be found (are you missing a using directive or an assembly reference?)   
..\AdministrationRouteFilter.cs 20  

The name 'NavigationRouteFilters' does not exist in the current context 

'NavigationRouteOptions' could not be found (are you missing a using directive or an assembly reference?)

我已经确认我也navigationroutes.mvc4安装了 Nuget 包。

这仅适用于 VS 2013 吗?

Nuget 包的日期为 2013 年 10 月 26 日。

协助表示赞赏。

4

4 回答 4

36

看来github中已经有关于错误的讨论了

尝试卸载 1.1.100 并按以下顺序安装 1.0.90 版本。

  • PM> 安装包 twitter.bootstrap.mvc4.sample -Version 1.0.90
  • PM> 卸载-Package twitter.bootstrap.mvc4.htmlhelpers -Force
  • PM> 安装包 twitter.bootstrap.mvc4.htmlhelpers -version 1.0.90
  • PM> 卸载-Package twitter.bootstrap.mvc4 -Force
  • PM> 安装包 twitter.bootstrap.mvc4 -version 1.0.90
于 2013-10-28T15:33:45.620 回答
5

早上好,伙计们,我遇到了完全相同的问题,至少对我来说,这有效>

而不是安装 twetter.bootstrap,只安装 bootstrap 包,因为看起来随着 vs2013 的发布,他们只是将包交给了 MS 维护。

因此,请卸载您当前的引导程序版本(推特版本),然后安装通用引导程序。(或者一定要安装 3.0.2 版)

install-package bootstrap

请注意,此修复适用于 VS2k12。

于 2013-11-25T15:46:47.733 回答
1

对我来说,关于如何设置 ASP.NET MVC 4 和 Twitter Bootstrap 的本教程可以正常工作:https ://www.macaw.nl/weblog/2013/5/setting-up-a-solution-with-mvc4-and-twitter -引导程序

于 2014-03-31T13:12:21.430 回答
0

如果您创建一个 VS2012 项目(基本 --- 不是 Internet!),然后在 bootstrapLayout.basic.cshtml (您可以在共享文件夹中找到)中添加 css 文件并在底部添加 Javascript 文件,则 Muthu 的解决方案有效bootstrapLayout.basic.cshtml。这是我的 bootstraplayout.basic.cshtml。注意...脚本文件的顺序很重要(祝您好运!)...感谢 Mithu!

@using System.Web.Optimization
@using BootstrapSupport
@using NavigationRoutes
<!DOCTYPE html>
<html lang="en">
    <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"/>*@
 @*   @Styles.Render("~/Content/bootstrap.min.css")
    @Scripts.Render("~/bundles/modernizr")*@
        <link href="~/Content/body.css" rel="stylesheet" />
        <link href="~/Content/bootstrap.min.css" rel="stylesheet" />
        <link href="~/Content/bootstrap-responsive.min.css" rel="stylesheet" />
        @RenderSection("head", required: false)
        @Html.Partial("_html5shiv")
        @* favicons and touch icons go here *@
    </head>
    <body>
        <div class="navbar navbar-inverse navbar-fixed-top">
            <div class="navbar-inner">
                <div class="container">
                    <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </a>
                    <a class="brand" href="#" title="change in _bootstrapLayout.basic.cshtml">Application Name</a>
                    <div class="nav-collapse collapse">
                        <ul class="nav">
                            @Html.Navigation()
                        </ul>
                    </div>
                </div>
            </div>
        </div>        
        <div class="container">
            @Html.Partial("_alerts")
            @Html.Partial("_validationSummary")
            @RenderBody()   
            <hr>
            <footer>
                <p>&copy; Company @System.DateTime.Now.ToString("yyyy")</p>
            </footer> 
        </div>
         @*@Scripts.Render("~/js")*@
        <script src="~/Scripts/jquery-1.9.1.min.js"></script>
        <script src="~/Scripts/jquery-ui-1.8.24.min.js"></script>
        <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
        <script src="~/Scripts/jquery.validate.min.js"></script>
        <script src="~/Scripts/jquery.validate.unobtrusive-custom-for-bootstrap.js"></script>
        <script src="~/Scripts/knockout-2.2.0.js"></script>
        <script src="~/Scripts/bootstrap.min.js"></script>

         @RenderSection("Scripts", required: false)
    </body>
</html>
于 2014-01-06T20:04:28.160 回答