Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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-Wordpress样式的URL_Asp.net_Asp.net Mvc_Seo - Fatal编程技术网

ASP.NET MVC-Wordpress样式的URL

ASP.NET MVC-Wordpress样式的URL,asp.net,asp.net-mvc,seo,Asp.net,Asp.net Mvc,Seo,Wordpress被高度评价,并被证明遵循良好的实践,这反过来促进了搜索引擎的排名 一个被证明的因素是搜索引擎优化频繁的URL。例如下面的例子 www.myblog.com/test www.myblog.com/another www.myblog.com/contact 假设我们有两个控制器,每个控制器都有自己的动作 View/BlogPost View/BlogCategory Contact/Form Contact/Post wordpress视图引擎足够灵活,测试url可以解析为

Wordpress被高度评价,并被证明遵循良好的实践,这反过来促进了搜索引擎的排名

一个被证明的因素是搜索引擎优化频繁的URL。例如下面的例子

www.myblog.com/test
www.myblog.com/another
www.myblog.com/contact
假设我们有两个控制器,每个控制器都有自己的动作

View/BlogPost
View/BlogCategory
Contact/Form
Contact/Post
wordpress视图引擎足够灵活,测试url可以解析为BlogPost,另一个url可以解析为BlogCategory


有人知道这在MVC中是否可行吗?我在考虑一个自定义的404处理程序,它将在浏览器中保留url,然后启动所需的操作。

您可以通过调用
重定向到Action()
将操作添加到控制器中

...
public ActionResult test()
{
    return RedirectToAction("BlogPost");
}
..
public ActionResult another()
{
    return RedirectToAction("BlogCategory");
}
...

您可以通过调用
RedirectToAction()
向控制器添加操作

...
public ActionResult test()
{
    return RedirectToAction("BlogPost");
}
..
public ActionResult another()
{
    return RedirectToAction("BlogCategory");
}
...

您可以在global.asax中这样定义路由,底部的路由是默认路由:

        routes.MapRoute(
            "Test",
            "test",
            new { controller = "View", action = "BlogPost"}
        );

        routes.MapRoute(
            "Another",
            "another",
            new { controller = "View", action = "BlogCategory"}
        );

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

MapRoute()中的第二个参数是URL,在您的例子中是“test”和“other”。您可能会在这里看到,您可以将此路由数据存储在其他位置,如db,然后通过它们将每个路由数据添加到RouteCollection。

您可以在global.asax中定义一个路由,如下所示,底部的路由是默认路由:

        routes.MapRoute(
            "Test",
            "test",
            new { controller = "View", action = "BlogPost"}
        );

        routes.MapRoute(
            "Another",
            "another",
            new { controller = "View", action = "BlogCategory"}
        );

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

MapRoute()中的第二个参数是URL,在您的例子中是“test”和“other”。您可能会在这里看到,您可以将此路由数据存储在其他地方,如db,然后通过它们将每个数据添加到RouteCollection。

正如上面其他人所回答的,很容易让此类路由具有友好的“Slug”URL。还有一些技巧可以构建像WordPress这样非常干净的URL。我写了两篇关于这个主题的博客文章,这可能会帮助你更好地理解Slug-url:而且

正如其他人在上面回答的那样,很容易有这样的路由来拥有友好的“Slug”url。还有一些技巧可以构建像WordPress这样非常干净的URL。我写了两篇关于这个主题的博客文章,这可能会帮助你更好地理解Slug URL:

Wordpress是一个自我发布的cms,有没有一种基于动态变量的决策方法?我相信你可以在Global.asax中使用自己的路线来实现这一点——但这是ASP.NET MVC的一个领域,我还没有涉及到。Wordpress是一种自发布cms,有没有一种基于动态变量的决策方法?我相信您可以在Global.asax中使用自己的路线来实现这一点——但这是ASP.NET MVC的一个领域,我还没有深入讨论过。