Я бы, вероятно, сделал что-то вроде действия "Step" в контроллере. Это действие будет принимать параметр id (int). Тогда я бы, вероятно, использовал что-то вроде: (псевдокод)
// Checking what Id you got from url
// Setting int id = ...
//
// And then
switch(id)
{
case 1: return View(view1);
case 2: return View(view2);
case 3: return View(view3);
}
URL будет выглядеть так:
/Controller/Step/Id
И вы можете указать на конкретный шаг, просто выбрав эту последнюю часть URL. Как:
<a href="http://localhost/myApp/Controller/Step/3">Step 3</a>
Редактировать после комментариев:
Вы можете использовать свойство ViewBag в контроллере, если вам нужно динамическое поведение.
switch(id)
{
case 1:
{
ViewBag.PrevStep = 0;
ViewBag.NextStep = 2;
return View(view1);
}
case 2:
{
ViewBag.PrevStep = 1;
ViewBag.NextStep = 3;
return View(view2);
}
// etc...
}
Тогда, по вашему мнению, вы будете делать ссылки, такие как:
<a href="http://localhost/myApp/Controller/Step/@ViewBag.PrevStep">Previous step</a>
<a href="http://localhost/myApp/Controller/Step/@ViewBag.NextStep">Next step</a>
Можно, конечно, @ Html.ActionLink, но я не могу вспомнить правильный синтаксис для него прямо сейчас :)
Но все же .. если у вас есть конкретное представление для каждого шага, вы можете просто жестко закодировать эти ссылки в представлениях.