我目前正在一個非常大的表格嚮導步驟(控制器動作)。我認爲通過實施表單嚮導(多個視圖/操作結果)來改變用戶體驗將是一個好主意。ASP.NET MVC窗體嚮導防止用戶跳過使用URL欄
一個要求是用戶必須完成一個小的合格性測試,以確保它們符合之前啓動應用程序嚮導本身的最低要求。
做完這樣的事之前,我只能看到一個辦法解決這個問題,並且在確定用戶是否可以訪問表單嚮導圖/ s的會話使用標誌e.g IsEligible。假設我的控制器有兩個ActionResults(Eligibility和WizardStepOne),它們是服務器分開的視圖。例如:
控制器 - 未測試的代碼
public ActionResult Eligibility()
{
Return View();
}
[HttpPost]
public ActionResult Eligibility(EligibilityViewModel model)
{
if(!ModelState.IsValid)
{
return View(model);
}
Session["IsEligible"] = true;
return("Success");
}
public ActionResult WizardStepOne()
{
bool stuff = (bool)Session["stuff"];
if(IsEligible == null)
{
return("Eligibility");
}
return RedirectToAction("Eligibility");
}
總之,如果用戶嘗試訪問該向導和IsEligible標誌的第一步驟中未被由資格後動作,則用戶設置重新導向回到資格表格。
我也在付諸行動的過濾器,但不能利用它多大意義。我還必須在稍後階段實施此功能,以防止用戶使用url跳過嚮導步驟,例如跳過WizardStepOne並從WizardStepTwo開始。
是否有更好的方法,然後一個在這種情況下,上述的?我寧願避免使用會話,因爲重新啓動表單會變得有問題,因爲它需要重新啓動按鈕來放棄會話,特別是在嚮導步驟之間。
有趣。你能提供一個例子嗎? – user2488275