asp.net-mvc - 在返回 PartialViewResult 的方法中返回 HttpStatusCodeResult

标签 asp.net-mvc model-view-controller error-handling viewmodel partial-views

我有一个 MVC5 应用程序,它有一个填充并返回部分 View 的方法。由于该方法接受 ID 作为参数,因此如果未提供 ID,则返回错误。

[HttpGet] public PartialViewResult GetMyData(int? id)
    {
        if (id == null || id == 0)
        {
            // I'd like to return an invalid code here, but this must be of type "PartialViewResult"
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest); // Does not compile
        }

        var response = MyService.GetMyData(id.Value);
        var viewModel = Mapper.Map<MyData, MyDataViewModel>(response.Value);

        return PartialView("~/Views/Data/_MyData.cshtml", viewModel);
    }

对于返回 PartialViewResult 作为其输出的方法报告错误的正确方法是什么?

最佳答案

您可以创建一个友好的错误部分并执行以下操作:

[HttpGet] 
public PartialViewResult GetMyData(int? id)
{
    if (id == null || id == 0)
    {
        // I'd like to return an invalid code here, but this must be of type "PartialViewResult"
        return PartialView("_FriendlyError");
    }

    var response = MyService.GetMyData(id.Value);
    var viewModel = Mapper.Map<MyData, MyDataViewModel>(response.Value);

    return PartialView("~/Views/Data/_MyData.cshtml", viewModel);
}

这样可以提供更好的用户体验,而不是只是向他们扔任何东西。您可以自定义该错误部分以包含他们做错的一些详细信息等。

关于asp.net-mvc - 在返回 PartialViewResult 的方法中返回 HttpStatusCodeResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538084/

相关文章:

java - Java和GUI-根据MVC模式,ActionListeners在哪里?

javascript - 如何使用 MVC 并在我的 Node 应用程序中包含文件

javascript - data-id 是否违反关注点分离

rest - 如何处理无服务器中的错误

c# - ASP.Net MVC 路由映射

asp.net-mvc - ASP.NET MVC 3 中的部分 View 缓存

mysql - 执行更新数据库时 MVC5 中的 RenameIndexOperation 错误

c# - 更新数据库中的值 - MVC

web-scraping - 当我不想处理所有404错误时,如何在Scrapy中返回404错误?

python - 如何捕获 python 中的非 fatal error