路线
routes.MapRoute(
"Whatever", // Route name
"{controller}/{action}/{id}", //{ID} MUST BE USED IN YOUR CONTROLLER AS THE PARAMETER
new { controller = "MyController", action = "MyActionName", id = UrlParameter.Optional } // Parameter defaults
);
Steps to reproduce my problem: 1. Create a new mvc3 application 2. Go to home controller and put Index(int? x){ return view()} 3. Run the application 4. Go to the url type in the url http://localthost:someport/Home/Index/1 5. Insert a break point in controller to see the value of x 6. Notice that even if you put the url above x NOT equal to 1 as is suppose to!
我只是不明白为什么我在id中得到null ....
public ActionResult MyActionName(int? id)
{
//the id is null!!!!!!!!!!!! event thought i just entered the url below!
}
我在浏览器中输入以下网址 http://locahost/MyController/MyActionName/1
//我也把它放在我的global.asax中,但它并没有真正帮助。
routes.MapRoute(
"Whatever", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "MyController", action = "MyActionName", id = UrlParameter.Optional } // Parameter defaults
);
和! 如果我把
我的错误 public ActionResult MyActionName(int id)
{
//the id is null!!!!!!!!!!!! event thought i just entered the url below!
}
请注意,上面的示例是为了简单起见,此错误适用于实际应用程序。
2>'/'应用程序中的服务器错误。参数字典包含'MedicalVariance.Controllers.MedicineManagementController'中方法'System.Web.Mvc.ActionResult Index(Int32)'的非可空类型'System.Int32'的参数'MvrId'的空条目。可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArgumentException:参数字典包含非医学类型'System.Int32'的参数'MvrId'的空条目,用于'MedicalVariance'中的方法'System.Web.Mvc.ActionResult Index(Int32)' .Controllers.MedicineManagementController”。可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数
答案 0 :(得分:2)
确保您的路线在默认路线之前定义。