ASP.Net MVC:如何进行提取和自动数据映射

时间:2016-03-11 08:27:45

标签: c# asp.net-mvc asp.net-mvc-routing

假设我有像 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。所以我需要概念怎么做?

我需要开发任何动作过滤器吗?

我是否需要编写任何自定义值提供程序?

我需要编写任何自定义模型绑定器吗?

我不想打破行动中的数据而宁愿我这样做也不行动。所以建议我一些最好的主意。感谢

1 个答案:

答案 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) {...}