ASP.NET Web App控制器,如何处理错误?

时间:2017-07-03 16:02:05

标签: c# asp.net-mvc

我有一个.NET Core ASP.NET Web应用程序,其控制器包含以下代码:

    public async Task<IActionResult> Index(ConfigurationViewModel viewModel)
    {
        if (ModelState.IsValid)
        {
            // Update
            var configurationClient = new ConfigurationClient();
            HttpResponseMessage response = await configurationClient.SetConfigurationValuesAsync(...);
            if (!response.IsSuccessStatusCode)
            {
                // How to report back to user?
            }
        }

        return View(viewModel);
    }

上面的代码调用Web API并可能返回错误。

如何在代码中处理这些错误?

2 个答案:

答案 0 :(得分:1)

您可以通过模型状态字典

发送一些错误消息
if (ModelState.IsValid)
{
  // your other code goes here
  if (!response.IsSuccessStatusCode)
  {
     // to do : Log errors for you :)
     ModelState.AddModelError(string.Empty,"Some error message");       
  }
}
return View(viewModel);

假设您在视图中使用验证标记帮助程序将验证错误消息呈现给用户

<form asp-action="Index" method="post">     

    <div asp-validation-summary="All"></div>

    <!-- your input elements here -->
    <input type="submit"/>

</form>

答案 1 :(得分:0)

您好,您可以使用如下

public async Task<IActionResult> Index(ConfigurationViewModel viewModel)
    {
        if (ModelState.IsValid)
        {
            // Update
            var configurationClient = new ConfigurationClient();
            HttpResponseMessage response = await configurationClient.SetConfigurationValuesAsync(...);
            if (!response.IsSuccessStatusCode)
            {
                // How to report back to user?

                    return View(viewModel);
            }
        }

        return View(viewModel);
    }

简要介绍返回视图(viewModel):

执行该对象时,ASP.NET MVC框架会将此方法准备的结果对象写入响应。