Передача идентификатора через asp-маршрутC#

Место общения программистов C#
Ответить
Anonymous
 Передача идентификатора через asp-маршрут

Сообщение 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);
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... -asp-route
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»