我正在创建一个MVC项目,并且具有下面的链接,该链接指向登录用户的网站列表:

http://[server]/Members/Websites


现在,我想在用户的网站部分下添加一个新的自定义路由,这将导致一个服务连接页面:

http://[server]/Members/Websites/Connect-to-service/999


其中“ 999”是所连接网站的ID。

我已经为载人定义了以下路线(将其放置在默认路线上方):

routes.MapRoute(
    name: "myRoute",
    url: "Members/Websites/Connect-to-service/{id}",
    defaults: new { controller = "Members", action = "Connect_To_Service" }
);


现在,如果我输入网址“ http:// [server] / Members / Websites / Connect-to-service / 999”,则可以正常加载我的页面。

如果我输入网址“ http:// [server] / Members / Websites / Connect-to-service /”,则会加载网站页面。

我想拥有的是在加载“ http:// [服务器] / Members / Websites / Connect-to-service /”时将其重定向到“ http:// [服务器] / Members / Websites /”(在浏览器网址),或抛出未找到页面错误。

能做到吗?

谢谢

最佳答案

您可以在Connect_To_Service操作中进行配置:

public ActionResult Connect_To_Service(int? id = null)
{
    if (!id.HasValue)
    {
        // Either:
        return RedirectToAction("Websites", "Members");

        // Or:
        return HttpNotFound();
    }

    // An id is provided. Process..
}


您可能需要通过添加id的默认值来更改路线:

defaults: new { controller = "Members", action = "Connect_To_Service", id = UrlParameter.Optional }

10-07 18:58
查看更多