У нас только что была та же проблема в нашем приложении, и я смог отследить ее до проблемы javascript / jquery. У нас есть ссылки в нашем приложении, определенные с помощью Html.ActionLink (), которые позже переопределяются в POST с помощью jquery.
Сначала мы определили ссылку:
Html.ActionLink("Click Me", "SomeAction", new { id = Model.Id})
Позже мы переопределяем действие по умолчанию с помощью нашей функции SomePostEventHandler:
$(document).ready(function() {
$('#MyLink').click(SomePostEventHandler);
}
Это было ударом по нашему действию MVC с фильтром HttpPost:
[HttpPost]
public ActionResult SomeAction(int id)
{
//Stuff
}
То, что мы обнаружили, это то, что большую часть времени это прекрасно работало. Однако при некоторых медленных загрузках страницы (или действительно быстрых пользователях) пользователь щелкал ссылку до того, как сработало событие jquery $ (document) .ready (), что означало, что он пытался вместо GET / Controller / SomeAction / XX вместо размещение.
Мы не хотим, чтобы пользователь ПОЛУЧИЛ этот URL, поэтому удаление фильтра для нас не вариант. Вместо этого мы просто напрямую связали событие onclick ссылки действия (нам пришлось немного изменить SomePostEventHandler (), чтобы это работало):
string clickEvent = "return SomePostEventHandler(this);";
Html.ActionLink("Click Me", "SomeAction", new { id = Model.Id}, new { onclick = clickEvent })
Итак, мораль этой истории, по крайней мере для нас, заключается в том, что, если вы видите эти ошибки, отследите URL-адрес, который, по вашему мнению, вы размещаете, и убедитесь, что это так.