【发布时间】:2019-10-24 16:40:12
【问题描述】:
我正在发现 ASP.NET Core MVC,并且我正在进行我的第一个项目。创建一个很酷的网上商店。
我目前想知道如何在控制器中实现错误信息检查
假设有一个产品页面,每当用户点击产品时,他们都会点击下面的功能。
如您所见,该函数接受一个名为 id 的 int 参数,它将在数据库中搜索适合 productId 的 id,但我想知道如何在此处添加错误检查?比如如果id在数据库中不存在返回到页面XX?
如果您不喜欢该功能,也可以随时提出建议。
我已经尝试过做一个简单的 if 和 else 语句
if(productvm == null)
{
then
return RedirectToPage("Index")
}
else
return View("ProductPage", productVm);
但它似乎没有命中 if 语句
[Route("ProductPage/{id}")]
public IActionResult ProductPage(int id)
{
Product product = _uow.Products.SelectProduct(id);
var stockViewModels = new List<StockViewModel>();
foreach (Stock stock in product.Stock)
{
stockViewModels.Add(new StockViewModel()
{
Id = stock.Id,
Description = stock.Description,
IsAvailable = stock.IsAvailable,
Quantity = stock.Quantity,
});
}
ProductViewModel productVm = new ProductViewModel
{
Name = product.Name,
Id = product.Id,
Description = product.Description,
Price = product.Price,
Stocks = stockViewModels,
};
if (productVm == null)
{
return RedirectToPage("Productslist");
}
else
{
return View("ProductPage", productVm);
}
}
如果在数据库中找不到id,我基本上想要一个错误处理控制器然后执行XX
我测试函数的方法是在浏览具有数据库中不存在的ID的页面时更改ID,然后我得到这个错误:
https://i.imgur.com/1amWx43.png
我想处理它
【问题讨论】:
-
你能展示你的逻辑的完整代码吗?我在你上面的代码中没有看到任何
if...else..? -
是的已编辑帖子,基本上当我设置断点时 if 语句永远不会被命中
标签: asp.net-mvc asp.net-core model-view-controller error-handling