目前我有一个名为(Manage)的控制器。我希望它有像
这样的链接Manage/Users/{userid}/{manageType}
Manage/Pages/{pageid}/{manageType}
动作manageType可以是(设置,用户名,描述)。
在我的管理控制器中构建此内容的最佳方法是什么,以便我可以拥有所有这些属性?是否可能存在其他操作中的多个操作函数?例如
ManageController
-> viewResult Users(int userID)
-> viewResult Pages(int pageID)
-> viewResult Type(string typeID)
用户和页面在从链接获取ID后将指向该类型。
答案 0 :(得分:2)
“是否可能存在其他操作中的多个操作功能?” 那会怎么样? Action方法只是常规的.NET方法 - 操作中的操作实际上没有意义。
如果你想在一个控制器中使用它,你将不得不这样:
public ActionResult UserSettings(int userid) { /*...*/ }
public ActionResult UserName(int userid) { /*...*/ }
public ActionResult UserDescription(int userid) { /*...*/ }
public ActionResult PageSettings(int userid) { /*...*/ }
public ActionResult PageName(int userid) { /*...*/ }
public ActionResult PageDescription(int userid) { /*...*/ }
您可以像这样连接路由:
routes.MapRoute(
name: "Default",
url: "Manage/Users/{userid}/Settings",
defaults: new { controller = "Manage", action = "UserSettings" },
constraints = new { userid = @"\d+" }
);
等