Я работаю над проектом ASP.NET Core 8 MVC, где у меня есть две простые таблицы, которые заполняют продукты и клиенты соответственно. При щелчке для просмотра или редактирования объекта (на данный момент не имеет значения), он должен заполнить страницу информацией о продукте или клиенте, однако я получаю нулевую ссылку.
Я отладил проблему, и оказалось, что когда я вызываю детализацию страницы представлений, передаваемый идентификатор равен 0. Почему это так, если он может получить продукты и/или клиентов и отобразить их для двух таблиц? Также я передаю идентификаторы через asp-route-id.
Dashboard.cshtml:
Products
#
Product Name
Part Number
UPC
Price
Actions
@foreach(var product in @ViewBag.Products)
{
@product.Id
@product.ProductName
@product.PartNumber
@product.UPC
$@product.Price
View
Update
}
Clients
#
Address
Phone Number
Actions
@foreach(var client in @ViewBag.Clients)
{
@client.Id
@client.Address
@client.PhoneNumber
View
Update
}
AdminController:
public async Task Dashboard()
{
List clients = await _dbContext.Clients.OrderBy(client => client.Id).ToListAsync();
List products = await _dbContext.Products.OrderBy(products => products.Id).ToListAsync();
// Gets both Lists just fine and displays them
ViewBag.Clients = clients;
ViewBag.Products = products;
return View();
}
// Other code
// These methods are doing the same behavior. int of either productId or clientId are 0
// It shouldn't be 0
public async Task UpdateProduct(int productId)
{
Product prod = await _dbContext.Products.FirstOrDefaultAsync(product => product.Id == productId);
return View(prod);
}
public async Task ViewProductDetails(int productId)
{
Product prod = await _dbContext.Products.FirstOrDefaultAsync(product => product.Id == productId);
return View(prod);
}
public async Task UpdateClient(int clientId)
{
Client client = await _dbContext.Clients.FirstOrDefaultAsync(client => client.Id == clientId);
return View(client);
}
public async Task ViewClientDetails(int clientId)
{
Client client = await _dbContext.Clients.FindAsync(clientId);
return View(client);
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -asp-route
Передача идентификатора через asp-маршрут ⇐ C#
Место общения программистов C#
1727806545
Anonymous
Я работаю над проектом ASP.NET Core 8 MVC, где у меня есть две простые таблицы, которые заполняют продукты и клиенты соответственно. При щелчке для просмотра или редактирования объекта (на данный момент не имеет значения), он должен заполнить страницу информацией о продукте или клиенте, однако я получаю нулевую ссылку.
Я отладил проблему, и оказалось, что когда я вызываю детализацию страницы представлений, передаваемый идентификатор равен 0. Почему это так, если он может получить продукты и/или клиентов и отобразить их для двух таблиц? Также я передаю идентификаторы через asp-route-id.
Dashboard.cshtml:
Products
#
Product Name
Part Number
UPC
Price
Actions
@foreach(var product in @ViewBag.Products)
{
@product.Id
@product.ProductName
@product.PartNumber
@product.UPC
$@product.Price
View
Update
}
Clients
#
Address
Phone Number
Actions
@foreach(var client in @ViewBag.Clients)
{
@client.Id
@client.Address
@client.PhoneNumber
View
Update
}
AdminController:
public async Task Dashboard()
{
List clients = await _dbContext.Clients.OrderBy(client => client.Id).ToListAsync();
List products = await _dbContext.Products.OrderBy(products => products.Id).ToListAsync();
// Gets both Lists just fine and displays them
ViewBag.Clients = clients;
ViewBag.Products = products;
return View();
}
// Other code
// These methods are doing the same behavior. int of either productId or clientId are 0
// It shouldn't be 0
public async Task UpdateProduct(int productId)
{
Product prod = await _dbContext.Products.FirstOrDefaultAsync(product => product.Id == productId);
return View(prod);
}
public async Task ViewProductDetails(int productId)
{
Product prod = await _dbContext.Products.FirstOrDefaultAsync(product => product.Id == productId);
return View(prod);
}
public async Task UpdateClient(int clientId)
{
Client client = await _dbContext.Clients.FirstOrDefaultAsync(client => client.Id == clientId);
return View(client);
}
public async Task ViewClientDetails(int clientId)
{
Client client = await _dbContext.Clients.FindAsync(clientId);
return View(client);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79044278/passing-id-through-asp-route[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия