Что делают атрибуты в ASP.NET MVC5?

Определяют “значение” метода в контроллере.

К примеру у нас есть следующий вызов контроллера из представления:

@Html.ActionLink("Add Author", "AddAuthor", "Home")

А в контроллере у нас несколько методов с таким именем:

[HttpGet]

public ActionResult AddAuthor()

{

return View();

}

[HttpPost]

public ActionResult AddAuthor(Author author)

{

...

}

Как понять какой метод вызывать через представление? Именно эти атрибуты и помогают разобраться с этой проблемой. Они указывают на то, что конкретно будет выполняться внутри, и View безошибочно будет вызывать именно те методы, которые нам нужно.