我正在尝试向我的用户展示一个表单,他们可以在其中输入起始邮政编码,点击按钮并最终进入一个页面,该页面提供前往已知邮政编码的行车路线。
我要匹配的路线定义为:
routes.MapRoute("Directions", "Directions/{Name}/{StartPostCode}-to-{DestinationPostCode}", new { controller = "Directions", action = "Index" });
我正在使用以下代码来呈现表单:
@using (@Html.BeginForm("Index", "Directions", new { DestinationPostCode = Model.postcode, Name = Model.nameURLized }, FormMethod.Get))
{
<input type="text" name="StartPostCode" id="StartPostCode" class="inputGreyed" value="Enter Postcode" onclick="ToggleDefaultText(this)"/>
<input type="submit" value="Get Directions" />
}
问题是我最终在/Directions/Index?StartPostCode=abc123
. 它缺少目标邮政编码和名称键值对。这当然意味着我最终会通过错误的路线处理我的请求。我已经使用 Phil Haacks 路由调试器证明了这一点。
我已经测试了直接去/Directions/TheName/ABC123-to-DT83PX
哪个按预期工作。事实上,我尝试使用以下代码构建链接:
@Html.ActionLink("Directions Generated", "Index", "Directions", new { StartPostCode = "ABC123", DestinationPostCode = Model.postcode, Name = Model.nameURLized }, new { @class = "button", @title = "More details on " + Model.name })
任何帮助都感激不尽。