How to resolve MVC4 Twitter Bootstrap project fail

2019-01-23 12:55发布

I'm having an issue with launching a MVC4 application with the Twitter bootstrap.

In VS 2012, I created a new empty MVC4 application, installed the following packages:

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

Seems like some navigation route options-related issues, as I am going through these few turorials Link 1 and Link 2.

In reading the note about possible compile issues, I restarted the solution, but errors I'm receiving aren't the ones in the readme and are focused around the NavigationRouteOptions, NavigationRouteFilters, RouteValueDictionary, FilterToken and HasFilterToken:

'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?)

I have confirmed that I do have navigationroutes.mvc4 Nuget package installed as well.

Is this only working in VS 2013?

The Nuget packages are dated October 26, 2013.

Assistance appreciated.

4条回答
做自己的国王
2楼-- · 2019-01-23 13:42

It seems there is already a discussion about the error in github

try uninstalling 1.1.100 and install 1.0.90 versions in the following order.

  • PM> Install-Package twitter.bootstrap.mvc4.sample -Version 1.0.90
  • PM> Uninstall-Package twitter.bootstrap.mvc4.htmlhelpers -Force
  • PM> Install-Package twitter.bootstrap.mvc4.htmlhelpers -version 1.0.90
  • PM> Uninstall-Package twitter.bootstrap.mvc4 -Force
  • PM> Install-Package twitter.bootstrap.mvc4 -version 1.0.90
查看更多
劫难
3楼-- · 2019-01-23 13:43

Good morning fellas, i have run into the exact same issue, and at least for me, this worked>

instead of installing twetter.bootstrap, just install the bootstrap package, because it looks like with the release of vs2013, they just handed the package over, to MS maintenance.

so, uninstall your current bootstrap version, (the twitter one) and just install general bootstrap. (or be sure to be installing version 3.0.2)

install-package bootstrap

note that this fix, applies to VS2k12.

查看更多
我命由我不由天
4楼-- · 2019-01-23 13:43

For me this tutorial about how to setup ASP.NET MVC 4 and Twitter Bootstrap works fine: https://www.macaw.nl/weblog/2013/5/setting-up-a-solution-with-mvc4-and-twitter-bootstrap

查看更多
看我几分像从前
5楼-- · 2019-01-23 13:48

Muthu's solution works if you create an VS2012 project (Basic --- NOT the Internet!), then add the css files in the bootstrapLayout.basic.cshtml (which you will find in the shared folder) and add the Javascript files at the bottom of bootstrapLayout.basic.cshtml. Here is my bootstraplayout.basic.cshtml. Note... the order of the script files is important (Good luck!) ... and THANKS 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>
查看更多
登录 后发表回答