گاهی از اوقات تنها نیاز است یک View خاص و نه تمام صفحات سایت، فایل اسکریپت ویژهی خود را مورد استفاده قرار دهد. در این حالت میتوان فایل اسکریپت مورد نیاز آنرا مطابق معمول در پوشهی Scripts در کنار سایر فایلها قرار داد و یا ... حتی شاید بهتر باشد این فایل اسکریپت ویژه را در همان پوشهی View مورد نظر قرار داد. اگر اینکار را انجام دهیم، برنامه کار نخواهد کرد و فایل اسکریپت با خطای 404، بارگذاری نمیشود. علت اینجا است که در ریشه پوشهی Views، فایل web.config خاصی با تنظیم ذیل قرار دارد:
به این ترتیب هر درخواستی که به پوشهی views یک برنامهی ASP.NET MVC برسد، با پیغام 404 مواجه خواهد شد.
در ادامه میخواهیم این تنظیم همانگونه که بودهاست، حفظ شود (چون مسیر پردازش صفحات در MVC از کنترلر به View است و نیازی نیست تا ابتدا View خاصی بارگذاری شود) اما اجازه دهیم تا فایلهای JavaScript از این مسیر قابل بارگذاری و استفاده شوند. برای این منظور میتوان با ویرایش فایل Views/web.config به صورت زیر عمل کرد:
در اینجا امکان قرار دادن فایلهای اسکریپت یک پوشهی خاص تحت ریشهی Views و بارگذاری معمولی آن میسر شود؛ بدون اینکه امکان دسترسی به فایلهای cshtml یا سایر فایلهای دیگر مانند قبل وجود داشته باشد.
در ادامه برای مسیر دهی این فایل اضافه شده باید به نحو ذیل عمل کرد:
<system.webServer> <handlers> <remove name="BlockViewHandler"/> <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> </handlers> </system.webServer>
در ادامه میخواهیم این تنظیم همانگونه که بودهاست، حفظ شود (چون مسیر پردازش صفحات در MVC از کنترلر به View است و نیازی نیست تا ابتدا View خاصی بارگذاری شود) اما اجازه دهیم تا فایلهای JavaScript از این مسیر قابل بارگذاری و استفاده شوند. برای این منظور میتوان با ویرایش فایل Views/web.config به صورت زیر عمل کرد:
<system.webServer> <handlers> <add name="JavaScriptHandler" path="*.js" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" /> <remove name="BlockViewHandler"/> <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> </handlers> </system.webServer>
در ادامه برای مسیر دهی این فایل اضافه شده باید به نحو ذیل عمل کرد:
<script type="text/javascript" src="~/Views/Home/Test.js"></script>