2011-12-31 52 views
2

私はのようなものをコーディングする能力を持っているTest.cshtmlビューを持っている:は動作しません

@Url.Action(.....) 

ページが配置されているとき、それは動作しますビューフォルダの下に表示されます。

ページが[テーマ]フォルダの下などの別の場所にある場合は、これ以上動作しません。

答えて

2

で見つけることが期待されます。

これは正常です。ビューはビューフォルダ内にのみ配置してください。彼らはそれの外で行うことは何もありません。

この理由で、すべてのビューの種類を示し~/Views/web.configファイル:

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.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> 

お知らせpageBaseType属性を?これは、ビューが、HtmlやUrlヘルパーなどのプロパティを定義するSystem.Web.Mvc.WebViewPageクラスから派生していることを示しています。

ビューフォルダの外にビューを置くと、そのようなweb.configをルートに含めるのを忘れてしまったので、カミソリページの基本タイプを指定していないので、URLとHtmlヘルパーのようなものはありませんもっと長く存在する。

したがって、標準のASP.NET MVC規則に違反し、ビューを配置する場所にファイル~/Views/web.configをコピーする可能性があります。

+0

ありがとう、私は毎日勉強しています。理由は、私は私のMVCソリューションをテーマにしています... – Bronzato

1

MVCは規約に基づいています。だから、HTMLページは、ページがテーマフォルダの下のように別の場所に配置されたときにそれはもう動作しません

~/Views/ControllerName/MyView.cshtml 
or 
~/Views/Shared/MyView.cshtml 
関連する問題