如何在ASP.NET Core 2 MVC中通过依赖性注入设置单元测试的模型验证?
我正在构建ASP.NET Core 2 MVC应用程序.很多时候,我需要利用依赖项来验证用户输入.我希望我的验证方法可以进行单位测试,并且我希望能够将模拟的依赖项注入其中.这是我以前在MVC5中所做的事情,取得了巨大的成功,但无法确定ASP.NET Core 2等效. 这就是我在MVC5中这样做的方式: // the view model to be validated public class MyViewModel { public string Username { get; set; } } // the model validator that will have dependencies injected into it public class MyViewModelValidator : ModelValidator { private IUserService users; private MyViewModel model; publi
10 2024-04-26
编程技术问答社区
MVC(4)和EF(4)中导航属性的验证
我使用EF创建了一个模型,然后在MVC中创建了一个控制器和视图. 模型类型A具有导航属性,以B类型.因此,当我创建A时,我想选择B. MVC向导创建控制器并仅查看标量属性创建的字段.所以我去了A上的创建动作,为: public ActionResult Create() //Create action for A { List b = db.B.ToList(); //db is my DataContext ViewData["B"] = companies.Select(option => new SelectListItem { Text = (option.Name.ToString()), Value = (option.Id.ToString()) }); r
6 2024-04-26
编程技术问答社区
C#自定义对象验证设计
我目前必须为我的应用程序验证自定义字段对象.简而言之,每个字段对象都包含有关该字段验证以及字段值的信息. 我正在批量验证字段,因此目前,我有一个验证类,该类别具有每个验证的方法.对于所需的字段,它看起来像这样: private void RequiredFields() { foreach (Field field in allFields) { if ((field.Required == true) && (field.Value == string.Empty)) { field.isValid = false; } } } 现在我的问题是我觉得我应该对验证进行抽象,所以不要说: if ((field.Required ==
8 2024-04-26
编程技术问答社区
MVC4远程验证未接收到参数值
我正在尝试在视图中对字段实现远程验证.到目前为止,除了验证控制器方法中的参数外,一切都在工作,即使该字段包含一个值,也可以使用.我想念什么? 验证控制器方法 public JsonResult IsVanityURL_Available(string VanityURL) { if (!_webSiteInfoRepository.GetVanityURL(VanityURL)) return Json(true, JsonRequestBehavior.AllowGet); string suggestedUID = String.Format(CultureInfo.InvariantCulture, "{0} is not available.", VanityURL); for (int i = 1; i
6 2024-04-26
编程技术问答社区
通过事件args获取控制权'的文本的事件
为了获得TextBox's Text,我应该订阅的事件是什么? 我尝试了PreviewTextInput,但是如果输入字符串为例如" 122".盒子的(请参阅代码)文本没有点,但是EventArgs.Text是"".成功验证的输入字符串和TextBox.Text为" 122 ..".我要做的是通过调用decimal.TryParse. 来验证输入字符串是否为十进制. private void OnPreviewTextInput(object sender, TextCompositionEventArgs eventArgs) { var box = sender as TextBox; if (box == null) return; eventArgs.Handled = !ValidationUtils.IsValid(box.Text + eventArgs.Text); } 解决方案 您可以尝试这样的事情: private
16 2024-04-26
编程技术问答社区
MVC 5 丢失验证器
我注意到具有表单验证器的MVC 5(C#)中的一种奇怪行为. 这是我检查错误的代码: var $validatr = $('form').data('validator'); var settngs = $validatr.settings; settngs.onkeyup = function (element, eventType) { if (!$validatr.element(element)) { $(this.currentForm).triggerHandler("invalid-form", [this]); } }; settngs.onfocusout = false; 我注意到此代码在某些形式上起作用,而另一种则不适.我试图获得这样的验证者: var $validatr = $('form').validate(); ,但它仍然无法正常工作. 重要
6 2024-04-26
编程技术问答社区
在Wpf Mvvm IdataErrorInfo中使用dataAnnonation正则表达式验证属性
我是使用MVVM的WPF应用程序开发的新手.因此,如果我问的是开箱即​​用的话,请忽略.我有一个模型类,可以在其中使用数据注释验证数据. 这是模型类的代码部分 /// /// The firstname of the person. /// [Required(AllowEmptyStrings = false, ErrorMessage = "First name must not be empty.")] [MaxLength(20, ErrorMessage = "Maximum of 20 characters is allowed.")] public string Firstname { get; set; } /// /// The lastname of the person. /// [Required
18 2024-04-26
编程技术问答社区
如何使用INotifyDataErrorInfo/ValidationSummary进行服务器端验证?
我正在使用各种客户端验证规则,例如某些字段上的Required.我也有一些数据库验证规则,例如真正需要完成服务器端的唯一约束.我已经将错误消息召集回到客户端,但是如何使用InotifyDataErrorInfo/验证符号向他们展示? 如果尽可能,我希望这些错误在验证控制中显示,以及导致错误的控制/属性.这甚至可能吗? 解决方案 这是一篇文章解释异步验证: http://weblogs.asp.net/fredriknormen/archive/2009/2009/11/11/11/22/silverlight-4-anderlight-4-and-ynchronous-validation-validation-walidation-walidation-walidation-walidation-walidation-validation-withitifydataataataaerorinfo.aspx > 在您的情况下,您将必须将添加的异步验证设置为班级本身!
6 2024-04-26
编程技术问答社区
Basic Html.ValidationMessageFor不工作
我在我们的网站上有一个简单的反馈表.当用户输入页面中的HTML时,他们应获得验证错误消息.但是他们没有.例外被抛出并捕获: void Application_Error(object sender, EventArgs e) { ... } 此处捕获的例外是: 从 客户 在system.web.httprequest.validatestestring(字符串值,字符串) CollectionKey,requestValidationsource requestCollection) 这是ASP.NET MVC标记: Your thoughts:
4 2024-04-26
编程技术问答社区
extjs4服务器端验证,怎么做?
我有一个extjs中的表格,我需要在服务器端上进行一些验证测试,然后返回消息错误 但是我不知道该怎么做! 我需要验证新添加的IP adress是否已经存在 我还需要验证它实际上是一个有效的地址(我有一个可以执行此操作的C函数) 如果可以添加这些条件,则可以添加. 如果不是,我想向用户显示错误消息,说什么问题 现在,当我调用保存按钮提交时,我在插入查询之前在我的C#上进行这些测试,但是即使这些测试也可以,它仍然可以在表格上说明成功,因为我不知道如何告诉extjs4错误 编辑 这就是我现在试图做的 我的表格提交: this.up('form').getForm().submit ({ url: 'AddData.ashx', params: { action: 'addip' }, success: function (form, action) { Ext.MessageBox.show({ title: '
12 2024-04-26
编程技术问答社区
MVC ModelState IsValid在应该是假的情况下报告为真
我有以下3个类(现在包括所有代码)... using System.ComponentModel.DataAnnotations; namespace MyWebApp.Models { public class ApplicationUser { [Display(Prompt = "Your Name", Name = "Contact Name"), Required(), StringLength(255, MinimumLength = 3, ErrorMessage = "Please enter a valid contact")] public string ContactName { get; set; } [Display(Name = "Username", Prompt = "Login As"), Required(), StringLength(255, MinimumLength = 3
6 2024-04-26
编程技术问答社区
删除C#字符串中的HTML标签或脚本标签,也使用JavaScript在客户端中删除
我需要进行用户输入验证,并且我希望它在客户端和服务器端进行验证. 我有Ang Textbox用户可以对产品进行评论,现在我想做的就是验证他的评论是否没有HTML或JavaScript等任何注射.因此,在用户单击提交 之后,我想做的 1.)客户端:如何执行验证,例如用户输入此类字符串 abcd // I will accept only abcd and remove the anchor tag but the abcd should appear as a link alert(123); // I will accept only alert(123);as the valid string abcd // I will display abcd but it must appear bold 2.)服务器端:与客户端相同的情况,我将删除注入的脚本
6 2024-04-26
编程技术问答社区
WPF-用户控件的风格验证错误
我已经使用DataAnnotations和InotifyDataError在应用程序中实现了验证,并且可以成功显示出何时发生错误以及错误是什么.我希望将默认错误模板更改为样式的文本框,其中输入了该值的文本框. 如果文本框与创建与基础数据模型的绑定在同一usercontrol中存在正确的工作. . 但是,我有很多输入,因此决定提取一个UserControl以封装标签和文本框.问题是完成此操作后,我无法再获得文本框来指示错误,我在整个控件周围获得了默认的红色框. 我尝试了一些建议,例如让儿童控制实施InotifyDataError,但到目前为止我还没有运气.这篇文章是同一问题,我找不到使用它的解决方案,因此我希望使用更多标签,这可能会引起更多关注,解决方案 usercontrol中的验证错误 这是我制作的一个小样本,显示了问题.如果输入了无效的年龄,则顶级条目样式将文本框变为红色,但底部用户控件周围只有一个红色框.
6 2024-04-26
编程技术问答社区
在.net中对模式进行多线程xml验证
我正在尝试在多线程应用程序中验证XML文件,并且遇到问题(验证错误:未声明''元素.)如果我使用单个线程运行代码,或者只是使用一个XML文件一次按预期工作. 我相信这与此 Schema验证错误/XMLSCHEMASET的线程安全性?问题,但是我无法弄清楚如何工作. 我最初使用的是一个很好的内联架构,该模式很好,但可以放慢太多解决外部文件.我决定将架构缓存在同步限制中以加快速度. 这是代码: 此方法属于每个线程本地的对象. public void validate() { XmlReaderSettings settings = new XmlReaderSettings(); settings.ValidationType = ValidationType.Schema; //settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema; /
6 2024-04-26
编程技术问答社区
用c# asp.net进行的AspNetMx Emaild验证
我正在尝试aspnetmx API.我想知道以下数字. 检查电子邮件有效或无效. 如果电子邮件有效(含义域是有效的,并且用户也存在)=>标志为有效(例如x) 如果电子邮件无效,=>标志为无效(例如y) 2.1.这是由于电子邮件语法不好(例如y1) 2.2.这是由于电子邮件域(例如y2) 引起的 2.3,这是由于不良邮箱(例如y3) 以下是ASPNETMX验证电子邮件地址的不同级别. MXValidateLevel.NotValid MXValidateLevel.Syntax MXValidateLevel.MXRecords MXValidateLevel.GreyListed MXValidateLevel.SMTP MXValidateLevel.Mailbox 问: 解决方案 您应该在线检查文档:从 http://www.aspnetmx. com/help/index.htm MXValidate mx = n
22 2024-04-26
编程技术问答社区
Visual Studio C#中的文本框验证
我是Visual Studio和C#的新手 我正在使用以下对象: 输入值的Texbox 链接到文本框以验证数据的验证事件. 一个按钮采取行动 单击与按钮关联的事件. 问题是我无法检查框中的值是否有效,并防止按钮中的单击事件发生.换句话说,如果内容不有效,请不要采取行动. 这是我的代码. public partial class mainForm : Form { public mainForm() { InitializeComponent(); } private void addButton_Click(object sender, EventArgs e) { // I need to check if the content is valid before adding it to the form ListViewItem item = new ListViewItem
24 2024-04-26
编程技术问答社区
自定义验证器中的控件名称 .NET客户端验证
我有一个带有三列文本框的GridView.它可以根据需要有尽可能多的行,但通常只有大约5行.每行都需要验证. 我想创建一个客户端验证器,该验证器将其中的2列总结在一起,并将其与第三列进行比较以检查用户是否正确输入数据. 以防万一您想知道,这是规格的一部分,即操作员必须输入第三列,而不是简单地将前两个列在后面的代码中汇总在一起.这样做是为了确保操作员正确转录信息. 我正在尝试使用.NET中的自定义验证器来创建此客户端验证.但是我找不到将其传递给三个文本框的名称的方法. 我可以使用ControlToaliate参数将目标控制名称命名,但是如何通过其他两个控制ID? 我正在寻找这样做的"正确"方法,一个想法是在ControlTovalifices的名称引用的JavaScript中创建一个数组. DC 解决方案 我解决了问题.不是一个优雅的解决方案,但可以正常工作. 首先,我将代码放在页面上的DIV 上
2 2024-04-26
编程技术问答社区