Over a million developers have joined DZone.

ASP.NET MVC 3: Using HttpNotFoundResult action result

DZone's Guide to

ASP.NET MVC 3: Using HttpNotFoundResult action result

Free Resource

ASP.NET MVC 3: Using HttpNotFoundResult action result

ASP.NET MVC 3 introduces some new action results like HttpNotFoundResult that you can use to let browser know that resource was not found. In this posting I will show you how to use HttpNotFoundResult in real-world applications.

HttpNotFoundResult class and HttpNotFound() method

Let’s start with ASP.NET MVC 3 default application and let’s modify Index() method of Home controller so it returns HttpNotFoundResults for some path. Here is my code:

public ActionResult NotFound()
var result = new HttpNotFoundResult();
return result;

Now let’s run our application and point browser to address http://myserver/Home/NotFound. As you can expect then the result is empty result with HTTP status code 404.

There is also shortcut method in Controller class that does exactly the same work. This protected method is called HttpNoFound() and you can use it exactly same way as you used HttpNotFoundResult before.

public ActionResult NotFound()
return HttpNotFound();

If you like to provide your own status message with error 404 then you can do it in constructor of HttpNotFoundResult. Also you can provide status description parameter for HttpNotFound method as shown in following example.

public ActionResult NotFound()
return HttpNotFound("I cannot find this thing!");

Page not found

I promised to give you some real-world example too. Here is example about controller method that is invoked when visitor requests some page (/Page/something-very-interesting). I hope comments in code are enough to make this method easy to understand.

public ActionResult Page(string urlName)
// ask pages from context that was injected by controller factory
var page = (from p in _context.Pages
where p.UrlName == urlName
select p)

// if page is null then it has never been there - say it's not found
if (page == null)
return HttpNotFound();

// page found - show details
return View(page);

You can use similar code also for other types of systems like e-commerce, blogs, forums etc.


HttpNotFoundResult class and HttpNotFound() method are easy ways how to let server and browser know that resource asked by visitor is not found. It is also important information for search engine spiders because they are able to correct their indexes based on that information.


Published at DZone with permission of Gunnar Peipman, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}