I have a checkbox and button:
@using(Html.BeginForm())
{
Try this, it solved this same issue for me. Thought I would share it in case others came upon this issue in the future.
[HttpPost]
public ActionResult Index(FormCollection collection)
{
Boolean tempValue = collection["showAll"] != null ? true : false;
TempData["showAll"] = tempValue;
...
something
...
}