MVC5对多个页面使用单个ActionResult?

时间:2014-07-12 22:34:07

标签: asp.net-mvc actionresult

我搜索的时间比我想要的解决方案要长,但却找不到解决方案。

我的网站有数百个静态页面。

为每个视图添加一个ActionResult非常繁琐。

特别是因为我必须停止调试才能编辑代码。

例如,如果我想添加一个关于页面,我必须添加...

    public ActionResult About()
    {
        return View();
    }

在我看来,我应该能够使这个动态并通过路线传递视图。

我的意思是,只要我有一个名为About.cshtml的文件,那么为什么我需要添加一个自定义的ActionResult。

我宁愿做这样的事情,但它不起作用。

    public ActionResult Index(_ViewName)
    {
        return View(_ViewName);
    }

是否可以使用通用的ActionResult并通过URL路由传递视图的名称?

1 个答案:

答案 0 :(得分:0)

使用默认路线,您可以编辑index方法,如下所示。

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

public ActionResult Index(string id)
{
    return View(id);
}

您需要做的是根据您要解析的名称添加视图。

示例

/home/index/about
/home/index/contact

About.cshtmlContact.cshtml次观看次数应在/Views/Home/文件夹中)

谢谢!