2012-02-13 5 views
0

У меня есть 2 dropdownlists на странице Index, и я хочу передать идентификаторы выбранных элементов на страницу Create, чтобы я мог заполнить 2 dropdownlists на странице Create the same как страница индекса.Прохождение vars из Index View для создания View

Не могли бы вы предложить, как я могу это сделать?

На данный момент у меня есть это в Index View: -

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

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

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

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

Благодаря

+0

Проверьте мое обновленное решение –

ответ

0

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

ActionLink routeValue from a TextBox

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

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

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

Если вы используете st rongly напечатали модель, которая имеет свойство для LeagueId и ClubId затем использовать:

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

Model.Clubs и Model.League является IEnumerables, которые вы будете использовать для заполнения вашего Dropdowns

конечно

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

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

[HttpPost] 
public ActionMethod Create(FormCollection data) 
{ 
    //Perform the create here 
} 
+0

Привет Бассамом, когда делать, как вы сказали, я получаю следующее: - HTTP: // локальный: 7246/Футболист/Создать? LeagueId = ddlLeagues & ClubId = ddlClubs – Johann

+0

@Johann это передаст их в ваш контроллер, если они определены на вашем маршруте так, как они будут отправлены, как часть RequestString –

+0

Привет Бассам, но я хочу, чтобы Пример: -http: // localhost: 7246/Футболист/Создать? LeagueId = 1 & ClubId = 5. Как я могу это получить? – Johann

0

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

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

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

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

или использовать непосредственно из браузера с помощью:

localhost:7246/Footballer/Create/1/5 
+0

Привет, Патрик, но как я получу 1 и 213 в новом {LeagueId = 1, ClubId = 213})? Как я могу получить выбранное значение? – Johann

+0

Ну, это вы должны предоставить эти 1 и 5, как вы хотите. Вы можете использовать Javascript или с ASP создать ссылку. Вы разработчик, и вы единственный, кто знает, как вы предпочли бы реализовать. Вы можете создать комбо в форму, которая будет автоматически отправлена ​​на сервер. –

Смежные вопросы