大师,
路由数据绑定问题非常简单。
请参阅以下代码。
公共类RemoveDashRouteHandler:MvcRouteHandler
{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
requestContext.RouteData.Values["controller"] = ((string)requestContext.RouteData.Values["controller"]).Replace("-", String.Empty);
return base.GetHttpHandler(requestContext);
}
}
这就是我正在注册的路线
routes.MapRoute (
name: "Categorywise",
url: "{action}-{controller}/{nm}/{p}"
).RouteHandler = new RemoveDashRouteHandler();
然后我做了一个像这样的简单模型
公共类参数
{
public string nm { get; set; }
public string p { get; set; }
}
现在的问题是,当我点击URL:http:// {mylocalip}:52730 / Authority-cars / 1/1 我总是得到所有参数null
重写同样的效果很好。
public ActionResult Authority(string nm,string p)
{
ViewBag.ActionMethod = "Autority";
return View("~/Views/Cars/Index.cshtml", new Params { nm = nm, p = p });
}
我在做什么错。 请帮忙。
提前致谢
答案 0 :(得分:1)
根据您如何定义路线,无需编写自定义路线处理程序来考虑路线中的短划线。
routes.MapRoute(
"Dash",
"{action}-{controller}/{nm}/{p}",
new { controller = "Home", action = "Index" }
);