波浪斩路径在MVC 4不工作(Tilde Slash Paths Not Working in MV

2019-06-25 02:38发布

正如我的理解是 ,一个普通的醇”‘〜/ foo’的路径应该是在MVC 4.如@ Url.Content(‘〜/’)的工作。然而,我试图做到这一点,越来越多破碎的路径-波浪仍然存在,当HTML输出。

因此,举例来说,我在/Views/Shared/_Layout.cshtml这个路径:

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

与HTML发表如下所示:

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

我敢肯定,我有这样的运行作为一个MVC 4项目了。 下面的东西在web.config中:

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

......在这一点上,我不知道该怎么寻找下一个。 有什么建议?

Answer 1:

这可能是由于结果在剃刀V2中的错误 ,其中的HTML注释符分辨率的撇号/单引号~路径。

解决方法是使用剃刀的意见,而不是HTML注释。 即,取代<!-- Here's your comment-->@* Here's your comment *@

很抱歉,这是一个长镜头,因为我不知道,如果你有HTML注释,让包含单引号的孤独者。



Answer 2:

我的猜测是,你仍在运行剃须刀1( MvcWebRazorHostFactory是<4.0)。

验证您的浏览文件夹中的web.config文件看起来像这样...

 <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>


Answer 3:

当我剪切和粘贴一些示例代码到一个视图我有这个问题。 原来我错了波浪型的!

@{
Layout = "∼/Views/_BasicLayout.cshtml";
}

VS

@{
Layout = "~/Views/_BasicLayout.cshtml";
}

微妙的不同 - 草皮找到



Answer 4:

使用独立的安装程序重新安装MVC 4(RC) 在这里解决了这个问题对我来说。 我还是不明白是什么原因造成的问题,但我可以忍受的。



Answer 5:

对我来说,问题只是涉及到SVG图像类型。 通过添加以下到项目的web.config文件( 没有意见,MVC4使用的web.config)解决了这个问题。

<configuration>
   <system.webServer>
      <staticContent>
         <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
      </staticContent>
   </system.webServer>
</configuration>


Answer 6:

该问题是关于href=和未其中< tag >
例子:

< img src="@Url.Content("Images/someImage.jpg")"/>
< a href="@Url.Content("Home/About")" >click here< /a>

它确定以窝@其他内部@section {}



Answer 7:

有什么解决这对我来说是关闭Meleze.web HTML缩小。



文章来源: Tilde Slash Paths Not Working in MVC 4