There aren't that many commonly used methods really.
That said, I'm with Jester, I don't think there is any way to know for certain.
asp.net though always has a viewstate.
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="******" />
Disabling viewstate doesn't get rid of the hidden field, it just makes the contents much smaller, but yes, MVC doesn't use it.That's not really reliable either, you can (and quite a few people do) disable viewstate in asp.net. Plus asp.net mvc doesn't use it![]()
It'll only have the viewstate field if the page includes an asp.net server side form (<form runat="server"> tag), without it there'll be none of the extra asp.net hidden fields or javascript includes output.asp.net though always has a viewstate.
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="******" />