下面添加了更多信息
使用以下" RedirectToAction" (产生以下URL)我得到:
**The view 'searchterm' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/browse/searchterm.aspx
~/Views/browse/searchterm.ascx
~/Views/Shared/searchterm.aspx
~/Views/Shared/searchterm.ascx
~/Views/browse/searchterm.cshtml
~/Views/browse/searchterm.vbhtml
~/Views/Shared/searchterm.cshtml
~/Views/Shared/searchterm.vbhtml**
生成请求的操作:
public ActionResult Action(string id)
{
if (!(string.IsNullOrEmpty(id)))
{
string SearchTerm = id;
return RedirectToAction("Products", new { SearchString = SearchTerm, Layout = "Row" });
}
return View();
}
URL:http://localhost:52006/browse/Products?SearchString=searchterm&Layout=Row
RouteConfig:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" });
routes.MapRoute(
"Admin", // Route name
"Admin/{controller}/{action}/{id}", // URL with parameters
new { controller = "Dashboard", action = "Index", id = "" });
}
产品控制器: public ActionResult Products(string SearchString,string Layout =" Grid") { ViewBag.Layout =布局; return View(SearchString); }
更多信息
最终会通过"产品"行动和正在处理:
http://localhost:52006/Browse/Products?Layout=Row#
有趣,因为它表明参数不是抛出路由的原因
最终会查找名称为= SearchString的操作的网址:
http://localhost:52006/Browse/Products?Search=acolyte&Layout=Row
- 很有意思,因为它表明参数的顺序不是抛弃路由/它不仅仅是抓住第一个参数作为要查找的动作。
http://localhost:52006/Browse/Products?Layout=Row&Search=acolyte
答案 0 :(得分:-1)
通过检查所有路线包括他们的区域和区域的路线注册的组合是正确的我修复了这个问题。