我尝试在控制器中创建一个方法,该方法将通过url参数生成totalAmount
并显示视图中的数量。我有一个模型GetTotalAmount
,它在过滤数据后返回一个int值。
// GET: Product
public ActionResult Index(int inOrOut=0,string startDate="",string endDate="")
{
ViewBag.totalAmount = new ProductModel().GetTotalAmount(inOrOut,startDate,endDate);
return View();
}
如果我点击以下网址..........
http://localhost:50573/Product/index/1/2018-03-01/2018-03-31
返回以下错误............
HTTP错误404.0 - 未找到
您要查找的资源已被删除,名称已更改或暂时不可用
我将如何得到我期望的观点?
答案 0 :(得分:2)
两种最快的解决方案:
解决方案#1 - 更正网址参数格式
我假设您在App_Start \ RouteConfig.cs
中有默认路由配置 public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
根据此路由,您需要使用
命中以下网址http://localhost:50573/Product/index/1?startdate=2018-03-01&enddate=2018-03-31
解决方案#2 - 将新路线图添加到配置
您仍然可以使用您提供的网址点击您的控制器。
http://localhost:50573/Product/index/1/2018-03-01/2018-03-31
为了做到这一点,你需要在你的路线上添加新的地图,所以整个RegisterRoutes方法应该是这样的
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Product",
url: "{controller}/{action}/{inOrOut}/{startDate}/{endDate}",
defaults: new { controller = "Product", action = "Index", inOrOut = 0,
startDate = "",
endDate = ""
}
);
}
我建议您阅读有关路由的更多信息 HERE