我正在使用MVC ViewModel。在表单中有两个单选按钮 是或否。如果用户选择“是”,则将显示TextField1,如果选择“否”,则将显示TextField2。两者都是带*(asterick)符号的必填字段。即使两者都是必填字段,用户只能根据单选按钮选择一次只填写一个TextField。这个问题是当用户提交一个textfield所需的验证错误信息显示时。有没有解决此问题的解决方法。MVC表单验证失败,原因是两个必填字段未使用的字段
0
A
回答
1
如果只显示一个,则不能有。
解决此问题的最简单方法之一是使用视图模型将DTO对象传递给页面的优点之一。
我需要在这里做很多假设,因为您没有提供任何代码,但是您的问题足够简单。即使我的假设是错误的,这些原则也可以很容易推断到您的特定用例。
我会假设你的对象看起来是这样的:
public class DtoObject
{
public bool IsPositiveSelection { get; set; }
public string YesReason { get; set; }
public string NoReason { get; set; }
}
由于没有是怎么回事的知识,我假设你有一个很好的理由。也许要求一个电子邮件地址,另一个电话号码。
如果你还没有,你将要创建这样一个视图模型:
public class DtoObjectViewModel
{
public bool YesNoRadio { get; set; }
[Required]
public string Reason { get; set; }
}
我所做的是在这里,而不是把两个独立的盒子,有一个总是会显示一个单一的一个。如果你确实需要一个电子邮件验证,另一个需要电话号码,你可以使用JavaScript,而不是仅仅依赖于属性。
这一操作将允许您以确保值是永远存在的,不管是哪个国家的单选按钮是英寸
在某些时候,你需要你的视图模型映射回您的DTO对象:
private DtoObject MapToDto(DoObjectViewModel model)
{
return new DtoObject
{
IsPositiveSelection = model.YesNoRadio,
YesReason = model.YesNoRadio ? model.Reason : "",
NoReason = model.YesNoRadio ? "" : model.Reason
};
}
还有很多其他的选择,但那些将需要更多的JavaScript,并作出任何比这个更广泛的答案已经是。
相关问题
- 1. 验证失败nodejs必填字段
- 2. JSF验证必填字段
- 3. 必填字段验证器
- 4. 必填字段验证
- 5. Crystal报表(必填字段验证)
- 6. 验证一个必填字段
- 7. Jquery表单验证,将用户返回到必填字段
- 8. MVC验证 - 非必填字段在提交表单前被强制填写
- 9. MVC的表单字段验证问题
- 10. 隔离必填字段验证程序?
- 11. 必填字段验证服务器端
- 12. MVC2 Html.DropDownList与必填字段和验证
- 13. C#Asp.net必填字段验证程序
- 14. 必填字段验证不隐藏
- 15. Asp.net必填字段验证问题
- 16. MVC dropdownlist必填字段验证不起作用
- 17. 如何验证以便至少需要1个字段,当第二个字段有两个必填字段时
- 18. 使用必填字段和验证扩展PHP表格
- 19. 在c#visual studio中验证必填字段并确认字段
- 20. 验证失败的 'ID' 字段
- 21. 验证两个字段中的一个字段是否为零
- 22. Viewstate验证失败。原因
- 23. Opera提交()时使用preventDefault()验证失败字段验证()
- 24. Codeigniter:验证两个字段
- 25. Spring MVC验证是否可以验证非原始字段
- 26. 是否有可能知道与jQuery验证时,单个字段验证失败
- 27. ASP.NET MVC。非必填字段都需要验证
- 28. ASP.NET MVC为非必填字段添加验证
- 29. ASP.Net MVC 3.0剃刀形式验证必填字段
- 30. Django表单:使禁用字段验证
那么这两个字段在您的模型中声明为'Required'作为DataAnnotation? –
是的。两者都是必填字段。 – VVR147493
所以你反对使用JavaScript?如果没有,为什么不把'Required'数据注释从你的模型中取出,然后在JS中检查一下或者其他单选按钮是否被选中,如果是,那么'.attr(“required”)'? –