ASP.Net MVC3 дает мне исключение, если я переименую параметр из id в albumId - PullRequest
1 голос
/ 13 февраля 2011

Я слежу за приложением ASP.Net MVC3 Music Store, и я заметил это.

Вот мое действие Details в контроллере Store.

public ActionResult Details(int id)
{
    var album = new Album() { Title = "Dark Side of The Moon" + id };
    return View(album);
}

//View
@model MvcMusicStore.Models.Album

@{
    ViewBag.Title = "Details";
}

<h2>Album Name: @Model.Title</h2>

Это работаетхорошо, однако, когда я пытался изменить имя параметра с «id» на «albumId», я получаю следующую ошибку:

Словарь параметров содержит пустую запись для параметра 'albumid', который не может быть очищенвведите «System.Int32» для метода «System.Web.Mvc.ActionResult Details (Int32)» в «MvcMusicStore.Controllers.StoreController».Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.Имя параметра: параметры

Почему работает переменная с определенным именем, но с другим именем выдает эту ошибку?MVC делает что-то автоматически с именами переменных "id"?

1 Ответ

2 голосов
/ 13 февраля 2011

Ваша конфигурация маршрутизации, вероятно, имеет {controller} / {action} / {id}, где она должна иметь {controller} / {action} / {albumid}

Загляни в свой global.asax

...