- Remove From My Forums
Удаление строки из таблицы
-
Вопрос
-
Есть таблица на главном представлении Index, в конроллере пытаюсь удалить запись из таблицы, при этом ошибок не возникает, но при запуске и нажатии соответствующей кнопки, происходит ошибка. запись в контроллере:
public ActionResult Delete(int kod)
{
Obsha9 kodfio = _db.Obsha9.Find(kod);
if (kod != null)
{
_db.Obsha9.Remove(kodfio);
_db.SaveChanges();
}
return RedirectToAction(«Index»);<<<<<<ОШИБКА
Ошибка сервера в приложении ‘/’.
Словарь параметров содержит запись со значением NULL для параметра «kod» типа «System.Int32», не допускающего значение NULL, для метода «System.Web.Mvc.ActionResult Delete(Int32)» в «ReitingTeacher.Controllers.HomeController».
Необязательный параметр должен иметь ссылочный тип, тип, допускающий значение NULL, либо он должен быть объявлен как необязательный параметр.
Имя параметра: parametersОписание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.
Сведения об исключении: System.ArgumentException: Словарь параметров содержит запись со значением NULL для параметра «kod» типа «System.Int32», не допускающего значение NULL, для метода «System.Web.Mvc.ActionResult
Delete(Int32)» в «ReitingTeacher.Controllers.HomeController». Необязательный параметр должен иметь ссылочный тип, тип, допускающий значение NULL, либо он должен быть объявлен как необязательный параметр.
Имя параметра: parameters.-
Изменено
28 мая 2013 г. 13:58
-
Изменено
Ответы
-
Ну развезли тут цирк))
1 посмотри в свой роутинг — там скорее всего увидишь чтото типа такого
«{controller}/{action}/{id}»так вот id тут ключевое
и у тебя передается в твой метод id=12345/*kod*/, а метод не принимает id а принимает kod
соответственно либо тут исправь
@Html.ActionLink(«Удалить», «Delete», new { kod= c.KodFIO }) и добавь роутинг с
«{controller}/{action}/{kod}»либо тут исправь
public ActionResult Delete(int id)
{
Obsha9 kodfio = _db.Obsha9.Find(id);
// if (id != null)
// {
_db.Obsha9.Remove(id);
_db.SaveChanges();
//}
return RedirectToAction(«Index»);
P.S. с исправлением роутинга так неполучится
«{controller}/{action}/{kod}» — конфликт пойдет c id
в общем запомни что существует связь по именам которую нужно соблюдать — если в ссылке стоит id значит и в методе должен стоять id а не int yaSralNaEtoPravilo-
Изменено
stuhin
31 мая 2013 г. 9:41 -
Предложено в качестве ответа
Maksim MarinovMicrosoft contingent staff, Moderator
3 июня 2013 г. 7:16 -
Помечено в качестве ответа
Maksim MarinovMicrosoft contingent staff, Moderator
4 июня 2013 г. 10:29
-
Изменено
-
проблема решена проще чем ожидалось
public ActionResult Delete(int? kod1) { Obsha9 kod = _db.Obsha9.Find(kod1); if (kod != null) { _db.Obsha9.Remove(kod); _db.SaveChanges(); } return RedirectToAction("Index");
@Html.ActionLink("Удалить", "Delete", new { id= c.Kod, kod1=c.Kod})
-
Предложено в качестве ответа
YatajgaModerator
1 июня 2013 г. 7:09 -
Помечено в качестве ответа
Maksim MarinovMicrosoft contingent staff, Moderator
4 июня 2013 г. 10:29
-
Предложено в качестве ответа
Как исправить ошибку?
Как исправить ошибку?
System.ArgumentNullException: "Значение не может быть неопределенным. Имя параметра: entity"
WPF форма содержащая 8 текст боксов
<StackPanel Grid.Column="2">
<TextBox Margin="5" Width="100" Text="{Binding SelectedOrder.КодЗаказа}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.КодКлиента}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.КодМаршрута}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.КодВодителя}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.КодТС}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.Дата}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.ДатаНачала}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.ДатаОкончания}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<Button Margin="50" Width="100" Content="Создать"
Command="{Binding AddCommand}"
/>
</StackPanel>
класс ViewModel, который реализует передачу данных из представления в модель
public class OrderViewModel : INotifyPropertyChanged
{
private ObservableCollection<Заказ> orderList; //список записей в таблице Заказ
private Заказ selectedOrder; //конкретный запись в Заказ
private TransportCompanyEntities transportCompanyEntities; // контекст?
public Заказ SelectedOrder
{
get { return selectedOrder; }
set
{
selectedOrder = value;
OnPropertyChanged(nameof(SelectedOrder));
}
}
public ObservableCollection<Заказ> OrderList
{
get { return orderList; }
set
{
orderList = value;
OnPropertyChanged(nameof(OrderList));
}
}
public OrderViewModel()
{
transportCompanyEntities = new TransportCompanyEntities();
LoadOrders();
}
private void LoadOrders()
{
OrderList = new ObservableCollection<Заказ>(transportCompanyEntities.Заказ);
}
private RelayCommand addCommand;
public RelayCommand AddCommand
{
get
{
return addCommand ??
(addCommand = new RelayCommand(obj =>
{
transportCompanyEntities.Заказ.Add(SelectedOrder);
transportCompanyEntities.SaveChanges();
}));
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
public class RelayCommand{}
Ошибка:
System.ArgumentNullException: "Значение не может быть неопределенным. Имя параметра: entity"
-
Вопрос заданболее года назад
-
897 просмотров
Пригласить эксперта
Значение не может быть неопределенным. Имя параметра: entity
Не оставлять entity
неопределённым. Или использовать значение по-умолчанию, или разрешить быть неопределённым.
-
Показать ещё
Загружается…
13 июн. 2023, в 22:21
10000 руб./за проект
13 июн. 2023, в 21:59
2000 руб./за проект
13 июн. 2023, в 20:23
5000 руб./за проект
Минуточку внимания
DioxiT 0 / 0 / 0 Регистрация: 11.12.2018 Сообщений: 32 |
||||
1 |
||||
.NET 4.x 22.10.2019, 23:18. Показов 6763. Ответов 6 Метки list, list<>, string (Все метки)
Не могу понять, как правильно взаимодействовать со списком, предполагаю, что я его как-то не так инициализирую. Ибо в отладчике service все время стоит со значением null.
Заранее благодарю за любую помощь!
0 |
Arthur Progy 251 / 167 / 94 Регистрация: 16.09.2019 Сообщений: 457 |
||||
22.10.2019, 23:20 |
2 |
|||
Сообщение было отмечено DioxiT как решение Решение
1 |
DioxiT 0 / 0 / 0 Регистрация: 11.12.2018 Сообщений: 32 |
||||
22.10.2019, 23:28 [ТС] |
3 |
|||
Спасибо большое. Ответ оказался прямо на поверхности)
Что-то я не догоняю…
0 |
251 / 167 / 94 Регистрация: 16.09.2019 Сообщений: 457 |
|
22.10.2019, 23:34 |
4 |
DioxiT, Ссылку можете скинуть на документацию?
0 |
0 / 0 / 0 Регистрация: 11.12.2018 Сообщений: 32 |
|
22.10.2019, 23:35 [ТС] |
5 |
0 |
Arthur Progy 251 / 167 / 94 Регистрация: 16.09.2019 Сообщений: 457 |
||||
22.10.2019, 23:38 |
6 |
|||
DioxiT, смотрите, в документации лист создается в методе, а не в классе через конструктор.
1 |
jester 351 / 246 / 76 Регистрация: 18.03.2016 Сообщений: 979 |
||||
23.10.2019, 01:47 |
7 |
|||
Arthur Progy,
DioxiT, смотрите, в документации лист создается в методе, а не в классе через конструктор. и что?
он создал глобальный service и поэтому может к нему обращаться из других методов(и вызывать ошибки)
0 |
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро .NET
»
Ошибка с сообщением «Значение не может быть неопределенным. Имя параметра: gost»
kmi |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 8 раз |
Добрый день! Помогите, пожалуйста, разобраться с проблемой. Есть клиент WCF-сервиса. Используется WS-security. При соединении проверяем сертификат сервера. Если запускаем из-под Visual Studio, то подключение работает. Но если запускаем сам exe-файл без студии, то возникает ошибка: Цитата: Message: Значение не может быть неопределенным. Exception: System.ArgumentNullException: Значение не может быть неопределенным. Server stack trace: Exception rethrown at [0]: Биндинг прописан так: Цитата: <wsHttpBinding> И эндпоинт: Цитата: <client> Стоит CSP 4.0.9944 и КП .NET 1.0.6893.0 |
|
WWW |
Артём Макаров |
|
Статус: Сотрудник Группы: Участники Сказал(а) «Спасибо»: 4 раз |
Добрый день. Какая версия .NET Framework используется? Если используется Криптопро.NET SDK совпадает ли версия SDK с версией устновленной Криптопро.NET? Можно ещё попробовать явно указать algorithmSuite в байндинге: Код:
|
Техническую поддержку оказываем тут |
|
|
|
kmi |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 8 раз |
Помогло это: https://www.cryptopro.ru…ts&m=95154#post95154 |
|
WWW |
Пользователи, просматривающие эту тему |
Guest |
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро .NET
»
Ошибка с сообщением «Значение не может быть неопределенным. Имя параметра: gost»
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Одной из частых ошибок, с которой сталкиваются разработчики при создании программного обеспечения, является ошибка «Значение не может быть неопределенным. Имя параметра: item». Данная ошибка может возникать при работе с массивами, списках и других коллекциях данных.
Причиной возникновения ошибки может быть попытка обратиться к несуществующему элементу коллекции. Например, если массив содержит 10 элементов, а программа пытается обратиться к 11-му элементу, то возникает ошибка «Значение не может быть неопределенным. Имя параметра: item». Также ошибка может возникать из-за передачи неверных параметров при вызове методов.
Ошибку можно исправить путем добавления проверок на наличие элемента в коллекции перед обращением к нему. Например, можно использовать условие if для проверки длины списка или массива.
Пример кода:
list = [1, 2, 3]
if len(list) >= 4:
print(list[3])
else:
print("Нет элемента с индексом 3")
Также возможной причиной ошибки может быть использование нулевых значений в качестве параметров методов. В этом случае необходимо проводить дополнительные проверки при выполнении методов.
В заключение, ошибка «Значение не может быть неопределенным. Имя параметра: item» является довольно распространенной и может возникать при работе с коллекциями данных. Ее причины могут быть связаны как с ошибками в коде, так и с передачей неверных параметров при вызове методов. Однако исправить ее можно путем добавления проверок на наличие элементов в коллекции.