2015-01-23 5 views
0

Я пытаюсь создать контент в представлении на основе параметра URL.MVC: отображение динамических форм на основе аргументов URL

. Например:

  • 10 компаний, 30 пользователей каждого
  • пользователя от компании Google щелкает распределенный значок, который открывает WWW **** tickets.com/ticket/?c=Google
  • Пользовательская страница продажи билетов с текстовыми полями, dropdownlists с Отображаются категории Google и логотип Google.
  • Все эти данные будут обрабатываться общим контроллером

У меня много планов на этот сайт, но это шаг # 1. Я довольно новичок в MVC, но у меня есть страница, поддерживающая пользователей/группы/роли. Я не уверен, будет ли лучший способ реализовать это, например, Javascript.

EDIT: Похоже, MVC Dynamic Forms может быть полезен для этого приложения. Исследуя это сейчас.

ответ

0

Ваш метод контроллера для обработки URL/билета должен принимать необязательный параметр c. Затем это значение автоматически будет заполнено значением в строке запроса. Затем вы можете провести это в модели и передать ее в представление.

Код будет что-то вроде

[HttpGet] 
public ActionResult Ticket(string c = null) 
{ 
    //Get some data based on c 
    var model = new TicketModel 
    { 
     Company = c, 
     SomeDropdownValues = StuffYouReadFromTheDbUsingParameterC, 
     LogoPath = PathYouHaveCalculatedUsingParameterC 
    }; 
    return View(model); 
} 

Если вы не знаете, как использовать модель в пределах зрения посмотреть термин «модель связывания». This article объясняет это ясно.

+0

Спасибо, Энди. Я рассмотрю эту статью. Нужно ли использовать частичные представления, если не все компании используют все поля, или я могу просто сделать их не обязательными? –

+0

Нет, вы можете просто не отображать эти поля, используя выражения 'if', основанные на значениях в модели. –