- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在为某个 viewModel 属性开发客户端和服务器端验证。
在 .cshtml
文件中我放了这个:
@Html.DropDownListFor(model => model.EntityType.ParentId, Model.ParentTypeList, "")
@Html.ValidationMessageFor(model => model.EntityType.ParentId)
在 Controller 中进行业务验证
catch (BusinessException e)
{
ModelState.AddModelError("EntityType.ParentId", Messages.CircularReference);
}
以上按预期工作:如果捕获到异常,则消息会出现在下拉列表旁边。
但是,我发现这种方式不是很优雅。在 cshtml
中,我使用一种方法生成有关验证的所有必需信息。在 Controller 中,我必须知道确切的 Key 字符串并使用它。
没有更好的方法吗?
最佳答案
您可以编写一个扩展方法,它将采用 lambda 表达式而不是字符串作为键:
public static class ModelStateExtensions
{
public static void AddModelError<TModel, TProperty>(
this ModelStateDictionary modelState,
Expression<Func<TModel, TProperty>> ex,
string message
)
{
var key = ExpressionHelper.GetExpressionText(ex);
modelState.AddModelError(key, message);
}
}
然后使用这个方法:
catch (BusinessException e)
{
ModelState.AddModelError<MyViewModel, int>(
x => x.EntityType.ParentId,
Messages.CircularReference
);
}
关于c# - ValidationMessageFor 与 AddModelError(key, message) 一起。关键是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12688082/
我有一个部分 View : @Html.EditorFor(model => model.BM) @Html.ValidationMessageFor(model => model.BM) 在主视
我如何检查模型属性是否存在验证错误 - 我正在使用 validationmessagefor 方法来显示错误消息。我怎样才能一次只显示一条错误消息?我 这是我拥有的模型属性 m.Communicati
我正在尝试对ASP.NET MVC3中的@Html.ValidationMessageFor()使用其他消息。效果很好,但似乎总是显示该消息,例如如果我这样做: @Html.ValidationMes
几天以来,我已经开始努力反对它,尝试了所有的想法(无论是否愚蠢),但似乎我无法让它发挥作用。 我想要存档的是:我只想显示一个带有 jquery 工具提示的图标,而不是原始的验证消息。此外,该解决方案应
你好, 我在我的页面上放置了以下代码: 然后在每个属性上我都有类似的东西: model.ModelViewAd.Title, "*", new { @class = "val" })%> 问题是,
我在页面顶部进行了一些验证。我只想在出现错误时才动态显示水平行。 @Html.ValidationMessageFor(model => model.tempHouseHoldSSNVerificat
我有两个具有一对多关系的模型类。 public class CycleType { [Required(ErrorMessage = "Cycle is required.")] pu
可能是个简单的问题,但我似乎找不到答案。 使用 MVC 2 我有一系列 Html.ValidationFor 控件。我想为文本分配一个 CSS 类,但似乎做不到。 Model.Chest, new
我的观点是: User Registration @Html.LabelFor(m => m.UsrName
为什么我的 @Html.ValidationMessageFo 不工作?当我运行该应用程序时,什么也没有发生,它允许输入所有内容。当我尝试在下面的编辑 View 中编辑项目时,它也会崩溃。我有以下内容
如果用户输入了无效的内容(比如需要数字的字符串),我试图让我的 View 在文本框旁边给我错误消息。相反,当用户按下提交时,我收到一个丑陋的错误页面,提示验证失败。 以下是我的部分观点: @model
我想在我的ASP.NET MVC应用程序中使用DataAnnotations。我已强类型化资源类,并想在我的 View 模型中定义: [DisplayName(CTRes.UserName)] str
当我的页面加载时,我的 ValidationSummary 和 ValidationMessageFor(model => model.TestNumbersString) 都显示验证错误,尽管几乎没
我有这门课: public class Product { [Required(ErrorMessage = "empty name")] public string Name { g
我想以 dd-mmm-yyyy 的形式强制执行日期。我使用以下帖子作为指南: http://blogs.msdn.com/b/stuartleeks/archive/2011/01/25/asp-ne
出于验证目的,我使用了 validationMessage 和 ValidationMessageFor Helpers。两者都显示错误消息,那么验证消息和验证消息之间的主要区别是什么。我在各种网站上
我一直致力于为 MVC 创建自定义错误验证消息,以显示 jQueryUI 样式的错误消息。 到目前为止看起来很酷,但我需要在没有错误消息的情况下隐藏整个 div...我该怎么做? 这是我的 html
我使用的是标准 MVC 成员身份验证的变体。 鉴于我的模型有: [Required] [Display(Name = "User name")] public string U
我有一些文本字段的服务器端验证消息。字段“title”是必填字段服务器端,在类中具有“[Required]”数据属性,但这似乎只在回发或表单提交时进行检查。我将“标题”文本字段保存在 jquery .
我正在为我的 Web 应用程序使用 Bootstrap ,但我在将消息状态置于正确位置的验证消息方面遇到了问题。现在我使用了这个 link 中的示例, 使用此代码: Input with err
我是一名优秀的程序员,十分优秀!