Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC5是否对多个页面使用单个ActionResult?_Asp.net Mvc_Actionresult - Fatal编程技术网

Asp.net mvc MVC5是否对多个页面使用单个ActionResult?

Asp.net mvc MVC5是否对多个页面使用单个ActionResult?,asp.net-mvc,actionresult,Asp.net Mvc,Actionresult,我寻找的时间比我愿意承认的要长,但找不到一个解决办法 我的网站有数百个静态页面 在每个视图中添加一个ActionResult是非常乏味的 尤其是因为我必须停止调试来编辑代码 例如,如果我想添加一个关于页面,我必须添加 public ActionResult About() { return View(); } 在我看来,我应该能够使这个动态,并通过路线传递视图 我的意思是,只要我有一个名为About.cshtml的文件,那么为什么我需要添加自定义Acti

我寻找的时间比我愿意承认的要长,但找不到一个解决办法

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

在每个视图中添加一个ActionResult是非常乏味的

尤其是因为我必须停止调试来编辑代码

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

    public ActionResult About()
    {
        return View();
    }
在我看来,我应该能够使这个动态,并通过路线传递视图

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

我宁愿做这样的事,但不行

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

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

使用默认路由,您可以按如下所示编辑索引方法并完成此操作

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);
}
您需要做的是根据正在解析的名称添加视图

范例

About.cshtml和Contact.cshtml视图应位于/views/Home/folder中


谢谢

我宁愿做这样的事,但不管用复杂的如果您正确设置视图名称的格式,那么如果您实际编写了编译的代码,而不是发布的代码,则完全没有理由不起作用。。。我是说如果我能将视图传递到ActionResult中那就太好了。任何能让我有一个单一行动结果的解决方案都会很好。现在,假设我编写了代码并正确格式化了视图名称,那么就没有理由不工作。这就是问题所在。我不知道该写什么代码。如果您通过一个简短的示例提供了代码,可能会显示路线和操作结果应该是什么样子,那么它将是问题的答案,我会将其标记为答案。但是您几乎已经拥有了所需的代码。。。除了需要使用有效的方法签名-public ActionResult Indexstring viewName{return viewName;}之外,您的代码还有其他问题:您从未进一步描述过,然后它就不起作用了,我有一个与您的代码完全相同的答案,实际上它起作用了。我通过查看上面的示例才意识到我的想法起作用,但我测试错了。我的URL是/home/about。所以这真的很简单,就像上面两位善良的人试图指出的那样。我将此标记为答案,因为它包含URL示例。
/home/index/about
/home/index/contact