日期:2014-05-20  浏览次数:20804 次

关于ASP.NET MVC的问题
初学.net的mvc,碰到一个麻烦问题,希望看到的大大能帮忙提出解决方法

问题描述:
  在项目里面的一个department的控制器里面我只声明了一个带有INT参数的Edit action,但是访问URL department/edit/1的时候总是提示接受的id值不能为空, 至于global里面的路由配置采用的就是那个默认配置。。 不知道是什么原因,昨天还能正常访问,但是今天不管怎么调试都是同一个错误提示: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method


Global路由配置如下:

  // Default Route
  routes.MapRoute(
  "Default", // Route name
  "{controller}/{action}/{id}", // URL with parameters
  new { controller = "Home", action = "Index", id = "" } // Parameter defaults
  );

------解决方案--------------------
参数ID与方法的参数类型不一致,可空类型
------解决方案--------------------
试试看
public ActionResult Edit(int? id)
{
var department = departmentRepository.GetDepartment(id);
if (department == null)
return View("Error");

var selectList = GetSelectList(department.ParentID);

ViewData["list"] = selectList;

return View(new DepartmentFormViewModel(department));
}