为什么我的控制器要求完整路径而不是mv3中没有参数的直接返回语句?

时间:2013-12-19 07:31:39

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

在控制器中我添加了一些逻辑,右键单击该控制器并添加了一个局部视图。为什么return View()不会返回我添加的视图。当我点击进入查看时,我检查了右键单击控制器 - >显示该视图。但是使用代码return view()不会返回我的视图。它要求完整的观点路径。

 return View("/Areas/Admin/Views/Search/ShowResult.ascx"); -->working
 return View(); -->not working

我需要消除完整路径。请告诉我为什么我的视图没有返回使用此返回View()。

编辑:

<%: Html.ActionLink("search", "index", new { Area = "admin", Controller = "search" }, new { style = "text-decoration: none" })%>

AdminAreaRegistration.cs

public class AdminAreaRegistration : AreaRegistration
    {
        public override string AreaName {
            get {
                return "Admin";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context) {
            context.MapRoute(
                "Admin_default",
                "Admin/{controller}/{action}/{id}",
                new { area = "admin",action = "index", id = UrlParameter.Optional }
            );
        }
    }

Global.ascx.cs

public static void RegisterRoutes(RouteCollection routes)
        {


            AreaRegistration.RegisterAllAreas();
}

控制器:

 [HttpPost]
        public ActionResult ShowResult(FormCollection collection)
        {
 return View("/Areas/Admin/Views/Search/ShowResult.ascx"); //working properly
return View();//not working any one tell me ...
}

返回View(); ---------------不工作询问完整路径。请告诉我

由于

1 个答案:

答案 0 :(得分:0)

ActionMethod和视图名称的名称是否应该相同才能使用return View()?您的ActionMethod名称是ShowResult(),视图名为“Test.aspx”。视图引擎无法建立该链接,因此它要求使用返回视图的完全限定名称,您必须将方法名称更改为Test或将视图名称更改为ShowResult。