To add onto that, you could do something like this..
const string divCommentWrapper = "<div class=\"col-md-4 img-portfolio\">{0}</div>";
foreach (Comment i in aComment.GetAllComments())
Comments.InnerHtml = string.Format(divCommentWrapper, i.Comments);
string.Format will replace {0} with the value of i.Comments. Also you can have as many parameters as you want because string.Format is a params function so you can have 1 -> Many replacements in it. {0}, {1}, {2} etc etc etc..
For example
const string divCommentWrapper = "<div class=\"col-md-4 img-portfolio\">{0}</div><div class=\"comment-date\">{1}</div>";
foreach (Comment i in aComment.GetAllComments())
Comments.InnerHtml = string.Format(divCommentWrapper, i.Comments, DateTime.Now.ToString());
Even better, you can create text files in your project, set their build action to EmbededResource, and then you can enter all your HTML in there normally and add {0}, {1}, etc placeholders where you need them, then you can use Assembly.GetManifestResourceStream to load your html templates to strings and then call string.format on them. As opposed to having them in the code and having to escape constantly like that.