gpt4 book ai didi

error-handling - 在 View 中显示错误

转载 作者:行者123 更新时间:2023-12-03 08:14:57 25 4
gpt4 key购买 nike

是否有任何标准做法来在 View 中显示错误?当前正在从TempData中显示它。

我从Base Controller实现了一个派生类,并在我的每个 Controller 中使用了该派生类。然后分配来自 Controller 的错误或成功消息。

public class TestController : Controller
{
public string ErrorMessage
{
get { return (string) TempData[CommonHelper.ErrorMessageKey]; }

set
{
if (TempData.ContainsKey(CommonHelper.ErrorMessageKey))
{
TempData[CommonHelper.ErrorMessageKey] = value;
}
else
{
TempData.Add(CommonHelper.ErrorMessageKey,value);
}

TempData.Remove(CommonHelper.SuccessMessageKey);
}
}

public string SuccessMessage
{
get { return (string)TempData[CommonHelper.SuccessMessageKey]; }

set
{
if(TempData.ContainsKey(CommonHelper.SuccessMessageKey))
{
TempData[CommonHelper.SuccessMessageKey] = value;
}
else
{
TempData.Add(CommonHelper.SuccessMessageKey, value);
}

TempData.Remove(CommonHelper.ErrorMessageKey);
}
}
}

CommonHelper类
public class CommonHelper
{

public const string SuccessMessageKey = "successMessage";

public const string ErrorMessageKey = "errorMessage";


public static string GetSuccessMessage(object data)
{
return data == null ? string.Empty : (string) data;
}


public static string GetErrorMessage(object data)
{
return data == null ? string.Empty : (string) data;
}

}

然后创建具有此的局部 View
@using Web.Helpers

@if (!string.IsNullOrEmpty(CommonHelper.GetSuccessMessage(TempData[CommonHelper.SuccessMessageKey])))
{
<div class="alert alert-success">
@CommonHelper.GetSuccessMessage(TempData[CommonHelper.SuccessMessageKey])
</div>
}
else if (!string.IsNullOrEmpty(CommonHelper.GetErrorMessage(TempData[CommonHelper.ErrorMessageKey])))
{
<div class="alert alert-success">
@CommonHelper.GetErrorMessage(TempData[CommonHelper.ErrorMessageKey])
</div>
}

并且在每个 View 中都会渲染部分 View 。
<div>
@Html.Partial("_Message")
</div>

最佳答案

这是显示错误的一种非常常见的实现。

控制者

public class UserController : Controller 
{
[HttpPost]
public ActionResult Create(User model)
{
// Example of manual validation
if(model.Username == "Admin")
{
ModelState.AddModelError("AdminError", "Sorry, username can't be admin")
}

if(!ModelState.IsValid()
{
return View(model)
}
}
}

模型
public class User
{
[Required]
public string Username {get; set;}

public string Name {get; set; }
}

View
@Html.ValidationSummary(true)
@using(Html.BeginForm())
{
// Form Html here
}

您不需要所有创建的基础架构。这由框架处理。如果您需要添加成功消息的方法,则可以 checkout Nuget软件包MVC FLASH

关于error-handling - 在 View 中显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14250809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com