【发布时间】:2012-03-19 21:11:27
【问题描述】:
所以我想在我的 MVC 应用程序中创建一个新视图,允许用户输入参数进行搜索。我想将这些参数传递给另一个视图/控制器,并且我希望控制器调用一个名为“搜索”的操作来处理这些参数并返回正确的数据。但是,当我尝试“重定向”时,它给了我一个问题。它说找不到资源,
The view 'Search' or its master was not found or no view engine supports the searched locations.
The following locations were searched:
~/Views/Question/Search.aspx
这是代码。
[HttpPost]
public ActionResult HandleForm()
{
SearchQuery search = new SearchQuery();
if(Request["QuestionID"].Trim()!="")
search.QuestionID = Convert.ToInt32(Request["QuestionID"].Trim());
return RedirectToAction("Search", "Question");
}
但是,如果我将“搜索”更改为“索引”,它会加载我想要的页面,因为它会打开该页面中的视图。它不调用搜索操作。当我读过的每个示例都声明需要传递 Action 的名称时,为什么这个方法会返回 View?
对于那些想知道这是我的 global.asax 路由信息的人
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
最后但并非最不重要的一点是,我还没有研究如何传递这些参数,但我希望一旦我能弄清楚为什么它不能按预期工作,就不会做太多额外的工作。
【问题讨论】:
-
与您的问题无关的建议是检查 AttributeRouting。在路线方面让我免于脑瘤。
-
您能否还包括您的 QuestionController 中存在的 Search 方法的签名?
-
您是否仔细检查了该文件是否确实存在:
~/Views/Question/Search.aspx?
标签: asp.net-mvc-3