I was wondering what, if there is one, is the best practice for including SEO content such as meta descriptions and keywords in an ASP.NET MVC (I’m using v3 RC) view. My initial plan is to create an actionfilter, applied globally to actions, to pull the relevant data from a data store and pass it as viewdata to the view.
My questions are:
1) Do you foresee any problems with this approach?
2) Are there any more suitable approaches?
3) what is an appropriate data store to use here – should i pull from the DB (or cache if the data is available), use resource files, config files, etc?
Thanks in advance,
JP
I would use attributes on my controller actions and add them to the
ViewDatain my base controller in the methodOnExecutingAction.The motivation to put it in the controller and not the view is that it’s really more information about the actual action than about the view. And you can use it when returning different kinds of formats like json or xml.
Controller
You could always use a resource file instead of plain strings.
in base controller:
In your layout
And here is the answers your questions: =)
Nope. It’s a fine approach.
Just gave you an alternative.
I would put it in plain text (if you don’t have to support multiple languages), else in a resource file. This information is typically not changed unless the view or controller is changed (where a recompilation is needed anyway). Hence no need for a more dynamic source.