【发布时间】:2012-04-25 09:02:12
【问题描述】:
我在运行时收到 id 的空错误。这是我所有的部分。
这是我的 DAL,ProjectDB
public static List<Product> IsOrganic(int lotid)
{
using (var db = new ProductDB())
{ //Selects from database in SQL what we need
//IsDamaged is Organic, and bool for true/false for food
DbCommand cmd = db.GetSqlStringCommand("SELECT * FROM PRODUCTS WHERE ORGANIC = 1");
return FillList(db.ExecuteDataSet(cmd));
}
}
这是我的经理
public List<Product> IsOrganic(int lotid)
{
return ProductDB.IsOrganic(lotid);
}
这是我的控制器
public ActionResult Organic(int id)//Store/Organic
{
ProductManager mgr = new ProductManager();
var list = mgr.IsOrganic(id);
return View(list);
}
另外,这里是我的全局
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
【问题讨论】:
-
如果你没有传入参数,你会得到那个错误。
-
该错误准确地描述了问题所在。您的请求和路由设置是什么样的?
-
当框架尝试调用您的控制器方法时,该错误发生在更高级别。执行未到达您显示的代码。
-
a: 你的路由大概没有将
id传递到操作中,b: 你没有在方法中使用id,那么它为什么存在呢? -
路线信息会在我的全局文件中吗?
标签: c# asp.net-mvc