РЕШЕНИЕ
по маршруту
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
);
И это все! Я думаю, вы должны использовать имя идентификатора в
public actionresult (int id // должен быть ID ЗДЕСЬ, как global.asax)
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!
Я просто не понимаю, почему я получаю нулевое значение в идентификаторе ....
public ActionResult MyActionName(int? id)
{
//the id is null!!!!!!!!!!!! event thought i just entered the url below!
}
Я ввожу следующий URL в своем браузере
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!
}
Обратите внимание, что приведенный выше пример был сделан для простоты, эта ошибка относится к реальному применению.
Ошибка сервера в приложении '/'.
Словарь параметров содержит пустую запись для параметра «MvrId» непустого типа «System.Int32» для метода «System.Web.Mvc.ActionResult Index (Int32)» в «MedicalVariance.Controllers.MedicineManagementController». Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.
Имя параметра: параметры
Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.
Сведения об исключении: System.ArgumentException: словарь параметров содержит пустую запись для параметра «MvrId» необнуляемого типа «System.Int32» для метода «System.Web.Mvc.ActionResult Index (Int32)» в «MedicalVariance» .Controllers.MedicineManagementController. Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.
Имя параметра: параметры