我正在创建一个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:// [server] / Members / Websites / Connect-to-service /”时,它将重定向到“http:// [server] / Members / Websites / “(在浏览器网址中),或者找不到错误的网页。
可以这样做吗?
感谢
答案 0 :(得分:3)
您可以在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 }