Я думаю, что ваш подход в порядке и часто лучший.например, если вы писали приложение с системой голосования, такой как stackoverflow (пример выбран, потому что вы смотрите на такое приложение прямо сейчас), и вы хотели реализовать механизм голосования с помощью HttpPost
, то вы можете создать небольшой элемент управления си кнопки вниз как отдельные формы *.Таким образом, вы можете легко добавить любое количество таких «виджетов» на страницу, и содержащей их странице не нужно будет ничего о них знать (в том числе, если они вообще присутствовали).В самом деле, вы можете использовать ненавязчивый javascript для отправки формы и перезагрузить «виджет» голосования с возвратом после сбоя, чтобы перезагрузить страницу, если javascript был выключен, и все это могло бы выглядеть довольно красиво.
* ПРИМЕЧАНИЕ: я неИмейте в виду, что именно так они и делают при стеке потока!
Отказ без AJAX может выглядеть так:
[HttpPost]
[OutputCache(Location = OutputCacheLocation.None, NoStore = true)]
public ActionResult DoThing(whatever params you are passing in)
{
// Do stuff and then...
if (Request.IsAjaxRequest)
{
return View("_partialThingView", thingViewModel);
}
else
{
RedirectToAction("Index");
}
}