返回参数后,查看未找到

时间:2015-09-28 18:24:11

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

我的控制器工作正常并在没有参数的情况下返回正确的视图,但是当我将参数传递给操作时,找不到视图。控制器位于名为Admin的区域中,路径注册显示在

下方
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 { action = "Index", id = UrlParameter.Optional },
            namespaces: new[] { "ZedvancePortal.Areas.Admin.Controllers" }
        );
    }
}

appstart文件夹中的RouteConfig.cs

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            namespaces: new[] { "ZedvancePortal.Controllers" }
        );
    }
}

该区域已在Global.asax页面中注册。这是下面的控制器操作。

public ActionResult Review(DateTime? start, DateTime? end)
{
    var model = _db.Applications.Include(a => a.ApplicationStatus).OrderByDescending(a => a.ApplicationDate);
    if (start != null && end != null)
    {
        model = model.Where(a => a.ApplicationDate >= start && a.ApplicationDate <= end).OrderByDescending(a=>a.ApplicationDate);
    }
    return View(model.ToList());
}

首次加载时,如果没有从Review.cshtml视图传递的start和end参数,则会正确加载。但是,当我传入这些参数并尝试将参数筛选结果返回到同一视图时,我得到错误

  

观点&#39;评论&#39;或者没有找到它的主人或没有查看引擎   支持搜索的位置。以下地点是   搜索:〜/ Views / ApplicationReview / Review.aspx   〜/ Views / ApplicationReview / Review.ascx~ / Views / Shared / Review.aspx   〜/ Views / Shared / Review.ascx~ / Views / ApplicationReview / Review.cshtml   〜/ Views / ApplicationReview / Review.vbhtml~ / Views / Shared / Review.cshtml   〜/查看/共享/ Review.vbhtml

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

问题是因为如果您仅提及视图名称,则会生成Ambiguity,因为它找到了Web serviceView,并且会出现错误以避免混淆

尝试使用Full Path of View,例如

return View("~/Views/ApplicationReview/Review.cshtml",model.ToList());