我正在创建一个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 }