2012-06-01 13 views
9

I understand it के रूप में, एक सादा ओल '~/foo "पथ एमवीसी 4 में @ Url.Content (" ~/") की तरह काम करना चाहिए। हालांकि, मैं कोशिश कर रहा हूं ऐसा करें और कई टूटे हुए पथ प्राप्त करें - HTML आउटपुट होने पर टिल्ड अभी भी वहां है।एमवीसी 4 में काम नहीं कर रहे टिल्डे स्लैश पथ

तो, उदाहरण के लिए, मैं /Views/Shared/_Layout.cshtml में इस पथ है:

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

और एचटीएमएल वितरित इस तरह दिखता है:

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

मैं बहुत यकीन है कि मेरे पास यह एक एमवीसी 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> 

... और इस बिंदु पर, मैं अगले देखने के लिए क्या यकीन नहीं है। कोई सुझाव?

+1

लगता है ऐसा लगता है कि आप अभी भी उस्तरा 1, [नहीं उस्तरा 2] (http://stackoverflow.com/a/ उपयोग कर रहे हैं 10194146/175679) – SliverNinja

+0

क्या आप एक एमवीसी 4 इंटरनेट एप्लिकेशन बनाने का प्रयास कर सकते हैं और इस सुविधा को आजमा सकते हैं? हो सकता है कि आप रेजर 2 का उपयोग नहीं कर रहे हैं क्योंकि @ सिल्वरनिंज ने यह भी उल्लेख किया है कि आपने अभी एमवीसी 4 के संदर्भ को बदल दिया है। –

+1

मैंने एक नया एमवीसी 4 एप्लीकेशन बनाने की कोशिश की और सुविधा अभी भी विफल हो गई है। एमवीसी 4 को पुनर्स्थापित करने का प्रयास करने के लिए जा रहे हैं। –

उत्तर

4

MVC 4 (आरसी) को पुनर्स्थापित करना स्टैंडएलोन इंस्टालर here का उपयोग कर मेरे लिए इस समस्या का समाधान। मुझे अभी भी समझ में नहीं आता कि समस्या का कारण क्या है, लेकिन मैं इसके साथ रह सकता हूं।

7

मेरा अनुमान है कि आप अभी भी रेजर 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> 
+0

ऐसा लगता है। –

+0

यदि आप एमवीसी 4 का उपयोग कर रहे हैं, तो आपको [संसाधन बंडलिंग काम करना] प्राप्त करना चाहिए (http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support- एएसपी निवल 4-5-series.aspx)। क्या आप अपने सीएसएस को बंडल करने का प्रयास कर सकते हैं? – SliverNinja

0

मुद्दे के बारे में href= और नहीं जो <tag>
उदाहरण है:

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

अंदर अन्य @section {}

+0

डाउनवोट क्यों? –

+1

डाउनवोट हो सकता है क्योंकि इस वाक्यविन्यास की आवश्यकता नहीं होनी चाहिए। http://www.davidhayden.me/blog/asp.net-mvc-4-the-new-tilde-slash-feature-in-razor-2 –

+0

स्कॉट सही है, लेकिन तकनीकी रूप से पीटर का समाधान अभी भी काम करेगा यदि आप रेजर पर गलती से हैं 1. हालांकि, रेजर 2 स्थापित करने के लिए बेहतर है। ;) –

14

घोंसला @ को इसकी ठीक इस a bug in Razor V2 का एक परिणाम के रूप में हो सकता है, जहां एक apostrophe/एकल एक HTML टिप्पणी में उद्धरण ~ पथों का संकल्प तोड़ता है।

वर्कअराउंड HTML टिप्पणियों के बजाय रेजर टिप्पणियों का उपयोग करना है। यानी <!-- Here's your comment-->@* Here's your comment *@ के साथ प्रतिस्थापित करें।

क्षमा करें यह एक लंबा शॉट है, क्योंकि मुझे नहीं पता कि आपके पास HTML टिप्पणियां हैं, अकेले वाले एकल उद्धरण वाले लोगों को दें।

+2

यह मेरी समस्या तय है, धन्यवाद! – Moeri

+0

मैं अभी भी इस पर लटका हुआ हूं। जिस पृष्ठ पर मैं काम कर रहा था, उसमें एक "एचटीएमएल टिप्पणी" थी जिसमें "इसे हटाना" या टिप्पणी में दूसरा जोड़ना समस्या को हल करता है। –

+0

यह काम करता है। मुझे आश्चर्य है कि यह अब तक एमवीसी 5 में क्यों हल नहीं हुआ है! – SepehrM

0

मेरे लिए यह हल किया गया Meleze.web HTML Minification बंद कर रहा था।

1

मेरे लिए समस्या केवल एसवीजी छवि प्रकार से संबंधित थी। प्रोजेक्ट की web.config फ़ाइल ( पर दिए गए web.config दृश्यों, एमवीसी 4) द्वारा निम्नलिखित जोड़कर इसे हल करें।

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

जब मैं कुछ उदाहरण कोड को एक दृश्य में काट और पेस्ट करता हूं तो मुझे यह समस्या थी। बाहर निकला मेरे पास गलत प्रकार का टिल्डे था!

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

बनाम

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

आसानी से अलग - घास

संबंधित मुद्दे