2015-10-14 2 views
1

Я пытаюсь использовать атрибуты маршрута для определения маршрутизации MVC.MVC5 Маршрутизация атрибутов

Я получил следующий код в контроллер ..

[Route("MDT/Detail/{id}")] 
public JsonResult Detail(int? id) 
{ 
    ITS.Models.ComputerDetail cp = GetDataFromDatabase(id.Value); 

    return Json(cp, JsonRequestBehavior.AllowGet); 
} 

Если бы я использовал этот URL (http://localhost:6481/MDT/Detail?id=1245) возвращает данные в формате JSON.

Но если я использовал (http://localhost:6481/MDT/Detail/1245), он показывает ошибку, указав, что идентификатор переменной Null.

Exception Details: System.InvalidOperationException: Nullable object must have a value. 

Не могли бы вы помочь мне, как я мог бы достичь {Controller}/{действие}/{ID} маршрутизации с помощью маршрутизации Атрибут?

+0

Чтобы включить маршрутизацию атрибутов, вызовите MapMvcAttributeRoutes во время конфигурации. –

ответ

0

Пожалуйста, попробуйте ниже код, он может полезно для вас,

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapMvcAttributeRoutes(); 

    AreaRegistration.RegisterAllAreas(); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 
} 
4

Вы включен атрибут маршрутизации, добавив следующую строку:

routes.MapMvcAttributeRoutes(); 

в RegisterRoutes?

Смежные вопросы