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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MVC. Как определить действие в контроллере? 
:(
    Опции темы
KuMa1104
Дата 27.12.2011, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

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



Здравствуйте!

Пытаюсь разобраться с основами MVC 3. Как определить действие в контроллере?
Код

 public class BookDetails
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Author { get; set; }
    }


На представлении есть ActionLink
Код

 @model IEnumerable<BookCatalog.Models.BookDetails>
<h2>Index</h2>
<table>
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
        </td>
    </tr>
}
</table>


В контроллере создал метод
Код

 // GET: /Catalog/Edit/
        public ActionResult Edit(int bookId)
        {
           //код...
        }


Почему теперь когда кликаю на кнопке происходит Exception ???

The parameters dictionary contains a null entry for parameter 'bookId' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Edit(Int32)' in 'BookCatalog.Controllers.CatalogController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Parameter name: parameters


Exception Details: System.ArgumentException: The parameters dictionary contains a null entry for parameter 'bookId' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Edit(Int32)' in 'BookCatalog.Controllers.CatalogController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Parameter name: parameters

Если меняю сигнатуру метода на  public ActionResult Edit(int? bookId)
то в int? bookId приходит null. 

Не пойму почему так происходит.


Это сообщение отредактировал(а) KuMa1104 - 27.12.2011, 21:18


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Любитель
Дата 28.12.2011, 02:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(KuMa1104 @  27.12.2011,  21:17 Найти цитируемый пост)
new { id=item.Id }

Цитата(KuMa1104 @  27.12.2011,  21:17 Найти цитируемый пост)
int bookId

Либо id, либо bookId. Выбери smile


--------------------
PM MAIL ICQ Skype   Вверх
KuMa1104
Дата 28.12.2011, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

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



Точно!! вот про это я и не подумал. спс)))


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

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

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

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

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


 




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


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

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