问题标签 [asp.net-mvc-validation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Razor 发布到共享主机后生成不同的 HTML
型号类:
剃刀:
在 Visual Studio 2012/Chrome 中运行时生成的代码。
发布到共享主机后生成的代码
为什么通过 VS 运行的站点生成的 html 代码更多?( class="input-validation-error">
等)
asp.net-mvc - jQuery.Validation.Unobtrusive 客户端验证仅在脚本位于视图页面上时有效
我有一个使用jQuery.validation.js插件和 MVC 的jQuery.validation.unobtrusive.js的ASP.NET MVC 4 应用程序。我在视图模型上使用数据注释来验证文本框的输入是否为整数。
此(嵌套)视图使用...加载到父视图中
第一个初始页面加载,客户端验证工作。但是任何使用 ajax 调用重新加载嵌套视图,客户端验证不再有效。这是为什么?
更新:(来自以下webdeveloper解决方案的代码示例)
例子:
asp.net-mvc - 我怎样才能使一个字段只在某些条件下是必需的?
我有一个用于创建和编辑用户的编辑视图。该视图有Password1
和Password2
字段,分别用于密码和确认。这些在视图模型中没有标记为必填项,因为在编辑用户时,这些字段是可选的,仅用于更改密码。
我不希望有两个几乎完全相同的视图模型,只有两个Required
属性不同。我确实对这些字段进行了服务器验证,但我非常不喜欢两阶段验证,其中用户修复所有客户端验证错误,只是提交和等待,然后出现服务器验证错误。
在某些情况下,有什么方法可以打开这些字段的客户端验证?我知道我可以使用 jQuery 添加必要的属性,但我希望有一个更简单、更清洁的解决方案。
asp.net-mvc - 如何使用 ModeState.AddModelError(key,value) 添加的 Key 在运行时获取 ModelState 错误
我已经使用控制器添加了模型错误
if(模型属性未选择){
ModelState.AddModelError("SelectionRequired","Please select atleast one value");
}
我在同一方法的许多地方添加了这个错误,但最终我想从 ModelState 错误集合中只向用户显示一条这样的消息。
为此,在返回查看之前,我必须删除除一条之外的所有类似消息。
我如何使用“SelectionRequired”即键而不使用“请选择至少一个值”来删除此消息。此“SelectionRequired”不是模型属性名称,它只是我们要使用的键。
我在运行时检查了 ModelState.Keys 集合,我在这些集合中根本看不到“SelectionRequired”,甚至在 ModelState.Values 集合中也看不到。那么这个键* “SelectionRequired”去哪里了?以及如何根据它选择错误?
有没有更好的方法来做到这一点?
asp.net-mvc - 按其键加载导航属性
我正在使用 EF CF 方法并且有:
以下数据模型:
以下 DataContect 定义:
这段代码的目的如下:
我有一个 ASP.NET MVC 4 应用程序。有一个用于编辑 Product 实体的表单,以及一个用于与 Category.CategoryID 属性绑定的 Category 实体的“查找”选择器/编辑器。
将表单提交到对应的 HttpPost Action 时,Product.Category.CategoryName 仍然为空。我在此范围内没有 Category 对象的直接实例:
因此,会出现一些模型验证错误。我需要明确分配/重新加载产品的 Category 属性,因为我已经知道 CategoryID。
所以我的问题是:
如何在没有额外步骤的情况下强制导航属性按其键/ID 加载(从而避免 ModelState 错误)?
我可能走错了方向。任何指导都会有所帮助。
.net - asp.net mvc中编辑器模板中的远程属性
我在 Country 类(模型)中有以下两个属性。
以上我期望Id
被传递给CheckName
方法。我的CheckName
方法CountryController
如下:
我正在使用 Country 类的编辑器模板,@Html.EditorFor(m => m.Country)
Id 属性被 id 作为 Country_Id 和名称作为 Country.Id 呈现为隐藏字段。当我编辑名称字段时,CheckName
没有获得所需的值(名称为空,ID 为 0(作为默认值))
我签入了 Fiddler,请求将作为GET /Country/CheckName?Country.Name=abc&Country.Id=0 HTTP/1.1
.
我应该怎么做才能解决这个问题?
c# - 在 EF Code First 模型上通过验证上传图像
我本可以发誓这应该已经被回答了一百万次,但是在搜索了很长一段时间后我还是空了。
我有一个绑定到对象的视图。这个对象应该以某种方式附加一个图像(我没有任何首选方法)。我想验证图像文件。我已经看到了使用属性执行此操作的方法,例如:
但是,这需要模型中属性的 HttpPostedFileBase 类型:
这一切都很好,但我不能在 EF Code First 模型类中真正使用这种类型,因为它并不真正适合数据库存储。
那么最好的方法是什么?
asp.net-mvc - Asp.net MVC 可为空的 DateTime 模型状态验证
在我的视图模型中,我有一个名为 BirthDate 的可为空的 DateTime 属性。
当我向控制器提交无效的 DateTime 值时,ModelState.IsValid 为 false,表示 BirthDate 是无效的 DateTime。
如何使 ModelState 将无效的可空 DateTime 视为空值,而不是使其无效?
asp.net-mvc - 我可以在以编程方式更改输入值时禁止运行 MVC 客户端验证吗?
我有一个表单,其中输入框预填充了默认值。如果字段为空,jQuery 事件处理程序会清除 'focus' 上的值并恢复 'blur' 上的默认值。
在提交之前(通过 AJAX),我清空了所有包含默认值的字段并触发客户端验证(对于必填字段):
到目前为止,一切都很好,但是在那之后,我的表单字段当然是空的。如果我再次触发“模糊”事件,我可以恢复默认值,但这会使验证消息消失,可能是因为客户端验证再次运行并且看到字段不再为空。
但是,当我手动单击进出表单字段时,会恢复默认值并保留验证消息。两者都通过相同的“模糊”处理程序。我无法弄清楚差异在哪里。
编辑: 我后来发现我可以完全禁用“模糊”验证:
这暂时解决了我的问题,但我仍然想知道为什么当从脚本或用户交互触发时模糊/聚焦的反应不同。
.net - Declarative conditional validation of a field based on other one from parent model
I have two separate types:
What I need is to perform conditional declarative validation of internal model field, based on some state of the parent model field - in this particular example an Email
has to be filled, if IsActive
option is enabled.
I do not want to reorganize these models taxonomy, while in the same time I need to use attribute-based approach. It seems that from within an attribute there is no access to the validation context of the parent model. How to reach or inject it there?
Edit:
I know how conditional validation can be implemented using Fluent Validation, but I'm NOT asking about that (I don't need support regarding Fluent Validation). I'd like to know however, if exists any way to access parent model from inside System.ComponentModel.DataAnnotations.ValidationAttribute
.