Вы можете использовать std :: is_member_function_pointer
class A {
public:
void foo() {};
}
bool test = std::is_member_function_pointer::value;
Исследуйте post-redirect-get шаблон.
http://weblogs.asp.net/mhawley/archive/tags/MVC/default.aspx
http://devlicio.us/blogs/tim_barcz/archive/2008/08/22/prg-pattern-in-the-asp-net-mvc-framework.aspx
Используйте это наряду с устойчивой моделью предметной области (для отслеживания шагов или состояния завершения формы или независимо от того, что Вы называете его), и Вы являетесь золотыми.
Для хранения шагов, Вы могли реализовать действие потока страницы фильтры, которые обеспечивают опыт как этот:
[RequiredStep(FlowStart = true)]
public ActionResult Confirm()
{
return View();
}
[RequiredStep (PreviousStep = "Confirm")]
public ActionResult ExecuteOrder()
{
return RedirectToAction("ThankYou");
}
[RequiredStep(PreviousStep = "ExecuteOrder")]
public ActionResult ThankYou()
{
return View();
}
public class CreateAccountWizardController : Controller
{
public ActionRresult Step1()
{
}
public ActionResult Step2()
{
}
}
Существует пара путей, создает действие для каждого шага процесса мастера или создает параметр, который передается в методу действия. Как шаг, который позволит Вам знать то, в чем находится состояние мастера.
Я оставил поток страниц до представления, которому, как я полагаю, оно принадлежит, поэтому разные представления могут иметь разные потоки страниц (например, для клиентов настольных браузеров или клиентов мобильных телефонов и т. Д.). Я написал это в моем блоге: Мастер RESTful, использующий ASP.Net MVC… Возможно?