передача переменных из индексного представления в создание представления - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть 2 выпадающих списка на странице индекса, и я хочу передать идентификаторы выбранных элементов на страницу создания, чтобы я мог заполнить 2 выпадающих списка на странице создания так же, как страница индекса.

Подскажите, пожалуйста, как я могу это сделать?

На данный момент у меня есть это в представлении индекса: -

    @Html.ActionLink("Create New", "Create", new { LeagueId = "ddlLeagues" }, new { ClubId = "ddlClubs" })

А затем в контроллере: -

        public ActionResult Create(int LeagueId, int ClubId)
    {
        var _LeagueID = LeagueId;
        var _ClubID = ClubId;

Любая помощь очень ценится!

Спасибо

Ответы [ 2 ]

0 голосов
/ 14 февраля 2012

Вы можете добавить маршрут в приложение RegisterRoutes:

routes.MapRoute(
        "CreateFootBallerWith2ComboOptions",
        "{controller}/{action}/{LeagueId}/{ClubId}",                           
        new { controller = "Footballer", action = "Create", LeagueId = -1, ClubId = -1 }  // Default Values
    );

Затем вы можете использовать то, что предлагает Bassam, с ActionLink, который является Html Helper.

@Html.ActionLink("Create New", "Create", 
                new { LeagueId = 1, ClubId = 213 });

или используйте напрямую из браузера, используя:

localhost:7246/Footballer/Create/1/5
0 голосов
/ 13 февраля 2012

Вы можете сделать это, как описано в этом посте:

ActionLink routeValue из TextBox

вам в основном нужно обернуть ваши выпадающие списки формой, которая перенаправляет в функцию создания, и отправка позаботится о передаче этих значений вашему контроллеру, потому что они будут в данных формы:

@using(Html.BeginForm("Create", "Footballer", FormMethod.Get))
{
  @Html.DropDownList("LeagueId", Model.Leagues)
  @Html.DropDownList("ClubId", Model.Clubs)

  <input type="submit" value="Create"/>
}

Если вы используете строго типизированную модель, имеющую свойства для LeagueId и ClubId, используйте:

@Html.DropDownListFor(m => m.LeagueId, Model.Leagues)
@Html.DropDownListFor(m => m.ClubId, Model.Clubs)

Model.Clubs и Model.League - это IEnumerables, которые вы будете использовать для заполнения своих dropDowns ofcourse

в вашем контроллере убедитесь, что у вас есть следующее:

[HttpGet]
public ActionMethod Create(int LeagueId, int ClubId)
{
  //return your Create View
}

[HttpPost]
public ActionMethod Create(FormCollection data)
{
  //Perform the create here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...