You need to do the following to get the item back:
var siteSettings = this.GetDataSourceItem<Alert_Settings>();
return View(siteSettings);
But you must inherit from the GlassController
to have access to the GetDataSourceItem
method. This will return your strongly typed model instead of the guid for your datasource item. If you don't have the ability to inherit in your current Controller directly from GlassController, you can use a different base controller (which we typically do in our own instances) and have that controller reference the GlassController.
However if you still need to do it without access to the GetDataSourceItem method on the Glass Controller, you could do the following instead:
Guid dataSourceId = RenderingContext.Current.Rendering.DataSource;
if (dataSourceId != Guid.Empty) {
var siteSettings = SitecoreContext.GetItem<ISiteSettings>(dataSourceId);
return View(siteSettings);
}
return new EmptyViewResult();
You can figure this solution out (assuming you didn't already know how to do this) by deconstructing the GlassController on Github. You can see that the T GetDataSourceItem() is passing in a Datasource which is the id returned from RenderingContext.Current.Rendering.Datasource
into the standard .GetItem method.
Also you asked what exactly is Rendering.Item and how is that different from the datasource on that rendering. The Rendering.Item is pretty much the same as calling Context.Item which would be the page you are on. Which the datasource would be the item directly assigned to the current rendering.