我有一个在地图上显示位置的应用程序。我创建了一条路线,这样我就可以拥有不错的可破解 URL,例如http://www.mydomain.com/paris。只需输入 URL 即可正常工作,但我在主页上有一个搜索表单,用于发送 GET 请求。提交表单时,地址栏中显示的 URL 格式为http://www.mydomain.com/Dashboard?location=paris。通常这不会太重要,因为它会触发正确的操作,但是我有一个运行该节目的主干.js 应用程序,并且它特别关注 URL 结构。
如果没有 javascript 或重定向,可能无法执行我需要的操作,因为在填充表单 ACTION 属性时该位置是未知的 - 但任何人都可以确认吗?
这是我的路线。
public static void RegisterRoutes( RouteCollection routes )
{
routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );
routes.MapRoute(
String.Empty,
"{location}",
new {
controller = "Dashboard",
action = "Index",
id = ""
}
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
} // Parameter defaults
);
}
这里是控制器。
public class DashboardController : Controller
{
[HttpGet]
public ViewResult Index(string location)
{
return View(new AccItemSearch { Location = location });
}
}
这是表格。
@using (Html.BeginForm("Index", "Dashboard", FormMethod.Get)) {
<h2>Where are you going?</h2>
<input type="text" placeholder="Area, town or postcode" id="location" name="location"/>
<button>Search!</button>
</div>
}
澄清一下:我需要帮助的问题是如何让用户提交表单,然后登陆 URL 为http://www.mydomain.com/searchterm的页面,从而匹配路由,而不是在使用 URL http://www.mydomain.com/Dashboard