Создать URL, который соответствует маршруту из формы - PullRequest
0 голосов
/ 11 августа 2010

У меня есть следующий маршрут:

routes.MapRoute(
            "PlayerSearch",
            "Players/{playername}",
            new {controller = "Players", action = "Get"});    

Это работает, если я иду к http://mydomain/players/playername.

У меня также есть форма, которая позволяет пользователям искать игроков по имени:

<% using (Html.BeginForm("Get", "Players"))
                    {
                    %>
                    <%=Html.Label("player name")%>
                    <%=Html.TextBox("playername")%>
                    <input type="submit" value="submit" /> 
                <%
                    }%>

Это работает, но URL теперь http://mydomain/players/Get. Я хочу, чтобы это был тот же URL, что и прямой URL выше. Я уверен, что это невежество (и, возможно, дубликат, но я не могу его найти) с моей стороны, но я просто не могу заставить его работать. Как использовать маршрутизацию, чтобы получить форму для отображения нужного URL?

1 Ответ

1 голос
/ 11 августа 2010

ну, кажется, вам нужно сделать что-то вроде этого:

<% using (Html.BeginRouteForm("PlayerSearch", FormMethod.Post))
                {
                %>
                <%=Html.Label("player name")%>
                <%=Html.TextBox("playername")%>
                <input type="submit" value="submit" /> 
            <%
                }%>

И вы должны указать маршруту, что имя игрока необязательно:

routes.MapRoute(
        "PlayerSearch",
        "Players/{playername}",
        new { controller = "Players", action = "Get", playername = UrlParameter.Optional });   

Это должно сработать.Надеюсь это поможет!:)

...