假设我有像 www.mysite.com/Certificate/data/C001-P2003
这样的链接我的控制器名称是证书和操作名称数据
public class CertificateController : Controller
{
public ActionResult Data(string certid,string studid)
{
return View();
}
}
我想知道我需要开发什么,它将提取id并分成两个部分,用连字符分隔,并将两个数据映射到Data动作。
C001将映射到certid,P2003将映射到studid。所以我需要概念怎么做?
我需要开发任何动作过滤器吗?
我是否需要编写任何自定义值提供程序?
我需要编写任何自定义模型绑定器吗?
我不想打破行动中的数据而宁愿我这样做也不行动。所以建议我一些最好的主意。感谢
答案 0 :(得分:0)
在RouteConfig
中创建一个会映射所需路线的约定。
routes.MapRoute(
name: "CertificateData",
url: "Certificate/data/{certid}-{studid}",
defaults: new { controller = "Certificate", action = "Data"}
);
或启用“属性路由”并使用模板操作来匹配所需的网址
// GET Certificate/data/C001-P2003
[Route("Certificate/data/{certid}-{studid}")]
public ActionResult Data(string certid,string studid) {...}