2010-08-11 19 views
0

我有以下途徑:創建網址匹配路線從表單

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?

回答

1

好,看來你需要做這樣的事情:

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

而且你必須告訴playername是可選路線:

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

這應該做的伎倆。希望這可以幫助! :)