Использование частичного просмотра - PullRequest
0 голосов
/ 31 марта 2011

Я использую бритву MVC 3 для веб-приложения.Мое требование состоит в том, чтобы создать волшебник как чувство, для этого я использую независимые представления для каждого шага.Я хочу использовать частичное представление с кнопками «Назад», «Отмена» и «Далее», чтобы на каждом шаге я мог использовать это частичное представление.Подскажите, пожалуйста, как мне поступить с подходом и как решить, какое действие будет вызываться при нажатии кнопки «Предыдущий» и «Следующий».

Большое спасибо

С уважением, Viv

1 Ответ

0 голосов
/ 31 марта 2011

Я бы, вероятно, сделал что-то вроде действия "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, но я не могу вспомнить правильный синтаксис для него прямо сейчас :)

Но все же .. если у вас есть конкретное представление для каждого шага, вы можете просто жестко закодировать эти ссылки в представлениях.

...