Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Некоректрый параметр при вызове метода в MVC, Как избавиться от непонятной ошибки 
:(
    Опции темы
Proger89
Дата 6.5.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 13.12.2007

Репутация: нет
Всего: нет



Доброго времени суток.
Мне нужно разработать простой сайт на MVC, но у меня возникло две проблемы, которые связаны с одной и той-же ошибкой. (для наглядности я прикрепил часть изображения схемы своей БД).
Для начала я создал страничку для отображения класса Performer. Там выводиться класс всех исполнителей + можно нажать на кнопку Details и посмотреть подробности. URL при просмотре подробной информации выглядит как http://.../Performer/Details/1, но если в качестве Id написать очень большое число (метод принимает int), то вываливается такая ошибка:
Цитата

The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Details(Int32)' in 'WebInterface.Controllers.PerformerController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.


Вторая проблема состоит в том, что я хотел создать страницу выводящую все тексты песен для конкретного исполнителя (связь LinqPerformer -> LinqLyric на картике). Я написал следующий код:
Код

namespace WebInterface.Controllers
{
    public class LyricController : Controller
    {

        LyricBL _lyricBL = new LyricBL();
        //
        // GET: /Lyric/

        public ActionResult Index(int PerformerId)
        {
            var lyrics = _lyricBL.GetAllPerformerLyrics(PerformerId);
            return View(lyrics);
        }

Потом я создал View для этого класса. Но когда я перехожу по URL http://.../Lyric/Index/1 получаю:
Цитата

The parameters dictionary contains a null entry for parameter 'PerformerId' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Index(Int32)' in 'WebInterface.Controllers.LyricController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Имя параметра: parameters


Что я делаю не так?
Заранее благодарен.



Это сообщение отредактировал(а) Любитель - 6.5.2010, 22:33

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  ________.png 7,83 Kb
PM   Вверх
Любитель
Дата 6.5.2010, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



1. Если параметр роутинга не может быть сконвертирован в нужный экшен-параметр, то логично что получится, что этот параметр останется без значения. Если выше приложение должно реагировать специальным образом на такие урл-ы - можно задать параметру значение по умолчанию (через атрибут DefaultValue или синтаксис 4-го шарпа) или сделать его нуллабельным (и обрабатывать в коде ситуацию для null-значения).
2. Со вторым предполагаю, что у вас используется дефолтная таблица роутинга. В ней нигде нет параметра PerformerId (дефотная схема: {controller}/{action}/{value}).

И используйте, плиз, quote вместо code, если длинные строки есть


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0400 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.