Я не проверял, но я уверен, что Safari для Mac - не единственный браузер, который делает это. Это из-за того, как работает кеш браузера. Когда вы возвращаетесь в историю браузера, Safari (и AFAIK Firefox также) не запрашивает страницу снова. Вместо этого Safari / Webkit хранит копию в памяти предыдущей посещенной страницы, поэтому возвращение происходит практически мгновенно.
В этой ситуации Safari хранит его точную копию, включая значения входных данных. В обычной ситуации это может быть удобно для пользователя, и, как я сказал, я не думаю, что Safari - единственный, кто делает это (и даже если бы это было так, другие браузеры могли бы сделать то же самое в будущем, поэтому Вы не должны нацеливаться конкретно).
Отключение кеша для действия «А» должно помочь, так как это заставит браузер снова получить страницу (и сбросить значение входов). Примерно так:
[System.Web.Mvc.OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public ActionResult A()
{
return View();
}
Если это не решит проблему, вам, возможно, придется очистить значения с помощью javascript в событии onload веб-страницы (это должно быть довольно тривиально для jquery). Что-то вроде:
$(document).ready(function() {
$('input').each( function() {
if($(this).attr('type') == 'checkbox') {
this.checked=false;
} else {
$(this).val('');
}
}
})
Примечание: код не проверен, но я надеюсь, что это поможет (если отключение кэша для страницы завершится неудачно):)