Как перенаправить один URL на страницу 404-ошибки в MVC

#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 , все еще работают?