Voting (even downvoting) is a core part of the site, and is part of what makes SE what it is. Voting is important to separate the useful answers from the others.
This is obviously pretty subjective, and depends a lot on the type of question, context, and apparent skill level of the OP.
Users will vote based on their own opinions.
Obviously it's important that the answer has a explanation/solution which answers the OP's question, but aside from that, IMO it's also important that the answer communicates the solution (and how to implement it) effectively, especially if the OP is new.
A really nice answer might include instructions on how to do the various steps required, and perhaps an explanation of why it works (including this will help get upvotes too, as it gives users a good indication that the solution actually works, without having to test it themselves).
These aren't supposed to be requirements or anything, just my own opinions of how a ideal answer might look.
When is it reasonable to downvote?
From the help center:
Above all, be honest. If you see misinformation, vote it down. Add
comments indicating what, specifically, is wrong. Provide better
answers of your own. Last but not least, edit and improve the existing
questions and answers! By doing these things, you are helping keep
Stack Exchange a great place to share knowledge of our craft.
Use your downvotes whenever you encounter an egregiously sloppy,
no-effort-expended post, or an answer that is clearly and perhaps
Answers which don't satisfactorily answer or communicate an answer to the question (in some users opinion) will most likely be downvoted. This isn't meant to be some sort of rude insult, but an impersonal indication that your answer could be improved.
Simply put, don't take downvotes personally.
Indeed, downvotes should absolutely never be used for insulting/being rude to a user.
If you see any rude/insulting comments, flag them.
However, in the case of the post linked in the question, I don't see any evidence of this being the case.
Also remember that a single user cannot downvote a post multiple times, so even if a malicious user downvoted a post without good reason, it wouldn't amount to much. (a downvote is -2, compared to an upvote which is +10).
For more, meta.se has loads of content on this (predictably ;))
Writing detailed answers is time consuming. Keep it friendly, and don't take the votes too seriously
Full disclosure: I was one of the downvoters on the post in question. I downvoted because I felt that the answer did not clearly explain how or why their answer worked.
I didn't write a comment, which was a failing on my part. I'll try to be more prompt with this in the future.
I've since retracted my vote, as the post was later edited to include more detail.