#c# #asp.net-mvc #web-config
#c# #asp.net-mvc #web-config
Вопрос:
мое приложение mvc использует следующие URL:
/Content/
/Content/style.css
/Content/image.png
Я хочу создать пересылку для url /Content/
он должен быть перенаправлен на ошибку 404. Все остальные URL должны работать. Как это сделать?
Я попробовал следующее решение, но оно перенаправляет все файлы из / Content / на страницу с ошибкой 404, но я хочу, чтобы был заблокирован только основной каталог.
Web.config:
<validation validateIntegratedModeConfiguration="false" />
<handlers>
...
<add name="hideDirectoryContent" verb="*" path="Content" type=" NameSspace.NoAccessHandler"/>
</handlers>
</system.webServer>
NoAccesHandler.cs:
public class NoAccessHandler : IHttpHandler
{
#region IHttpHandler Members
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.StatusCode = 404;
}
#endregion
}
Ответ №1:
для этого вам просто нужно создать контроллер, как показано ниже (протестировано на mvc 4)
public class ContentController : Controller
{
// GET: Content
[AllowAnonymous]
public ActionResult Index()
{
return new HttpStatusCodeResult(HttpStatusCode.NotFound, "Not Found");
}
}
и в вашей коллекции маршрутов используйте
routes.RouteExistingFiles = true;
надеюсь, это поможет
Комментарии:
1. но если другие пути, подобные
/Content/file1.jpg
, все еще работают?