C#MVC RedirectToAction不工作?

问题描述:

所以我想在我的MVC应用程序中创建一个新的视图,允许用户输入搜索参数。我想将这些参数传递给另一个View/Controller,我希望控制器调用一个名为“Search”的操作来处理这些参数并返回正确的数据。但是,当我尝试“重定向”时,它给我一个问题。它说资源找不到,C#MVC RedirectToAction不工作?

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 

这是代码。但是,如果我将“搜索”更改为“索引”,它会加载我希望的页面,因为它会打开该页面中的视图。它不会调用搜索操作。为什么当我读过的每个示例都声明Action的名称需要传递时,此方法返回视图?

对于那些谁不知道这是我的Global.asax路由信息

routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } 

最后但并非最不重要的,我还没有考虑如何将这些参数传递,但我希望它不会太一旦我可以弄清楚为什么这种方式不能按需要工作,那么额外的工作就会很多

+0

一个与你的问题无关的建议是签出AttributeRouting。当谈到路线时,将我从脑瘤中拯救出来。 – 2012-03-19 21:16:24

+0

你还可以包含QuestionController中存在的Search方法的签名吗? – Mufaka 2012-03-19 22:10:15

+2

如果文件实际存在,你有没有加倍检查:'〜/ Views/Question/Search.aspx'? – veblock 2012-03-19 22:13:43

转到Views/Questions目录并确保有一个名为Search.cshtml的文件。如果它确实还存在,那么请确保此观点都有相应的操作方法,是这样的:

public class QuestionController : Controller 
{ 
    public ActionResult Search() 
    { 
    } 
} 
+0

那么我最终决定,它会更好,而不是尝试重定向到另一个页面......只是结合了页面。但是我遇到了更多的问题......感谢您的帮助。 – egucciar 2012-03-20 18:34:12

+0

你有什么问题? – 2012-03-22 08:12:02

如果你在同一个控制器然后写:

return RedirectToAction("Search"); 

,或者如果你的搜索行动在其他控制器然后写:

return RedirectToAction("Search","your Controller Name Here");