草庐IT

eval_model_params

全部标签

c# - Model 和 ViewModel 的验证最佳实践

我有单独的模型和View模型类。其中viewmodel类仅进行UI级别验证(引用:Validation:ModelorViewModel)。我可以在Controller中验证模型(vewmodel)是否有效。问:如何验证模型(带有数据注释的主要实体)。我没有使用模型对象开发View模型。只需复制属性并添加该特定View中可能需要的所有属性。//ModelClasspublicclassUser{[Required]publicstringEmail{get;set;}[Required]publicDateTimeCreated{get;set;}}//ViewModelClasspu

c# - 处理 ViewModel/Model 中的致命异常

我有一个使用M-V-VM方法编写的应用程序。数据访问在模型中完成。如果此处发生fatalerror(例如,与数据源的连接丢失),则抛出Exception。此异常冒泡到ViewModel。但是,因为数据访问的原始触发器是数据绑定(bind),WPF吞下了这个异常(它只在应用程序在调试器下运行时记录在输出窗口中)。我宁愿这个异常保持未处理状态,这样我的应用程序范围内的未处理异常处理程序就可以拾取它、记录它并优雅地退出。我怎样才能做到这一点? 最佳答案 您可以在调度程序上对异常抛出操作进行排队。//Thispropertyisconnec

c# - 使用 moq 验证对带有 param 参数的函数的调用

我有一个带有LogTrace(stringvalue,paramsobject[]parameters)的ILogger接口(interface)。现在我想验证是否调用了LogTrace并且要记录的字符串包含一些id。问题是它可以被不同地调用。例如。1)LogTrace("MyString"+id)2)LogTrace("MyString{0}",id)等等。Moq有没有好的方法来验证所有的场景?我只能考虑创建一个手工制作的模拟来格式化可用于验证的字符串。 最佳答案 mock.Verify(m=>m.LogTrace(It.IsAn

c# - C# 中的 `params` 是否总是会导致在每次调用时分配一个新数组?

C#/.NET通过按引用传递Array类型来实现可变函数参数(与C/C++不同,C/C++只是将所有值直接放在堆栈上,无论好坏).在C#世界中,这有一个很好的优势,即允许您使用“原始”参数或可重用数组实例调用相同的函数:CultureInfoc=CultureInfo.InvariantCulture;Stringformatted0=String.Format(c,"{0}{1}{2}",1,2,3);Int32third=3;Stringformatted0=String.Format(c,"{0}{1}{2}",1,2,third);Object[]values=newObjec

c# - C# 中的命名参数和 params 关键字

这个问题在这里已经有了答案:Howtosetnamedargumentforstring.Format?(2个答案)关闭9年前。我有一个C#方法,它带有使用params关键字声明的可变长度参数列表:publicvoidVariableLengthParameterFunction(objectfirstParam,paramsobject[]secondParam)调用方法时有没有使用命名参数的方法?

c# - Asp.Net(C#) 内联编码 Eval if 语句

大家好;如果控件如何进行内联求值? 最佳答案 使用三级表达式“?”: 关于c#-Asp.Net(C#)内联编码Evalif语句,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2606833/

c# - MVC3 全局化 : need global filter before model binding

目前,我有一个名为GlobalizationFilter的全局过滤器,它检查路由值、cookie和浏览器语言header以确定请求的正确文化设置:publicoverridevoidOnActionExecuting(ActionExecutingContextfilterContext){//determinecultureInfoThread.CurrentThread.CurrentCulture=cultureInfo;Thread.CurrentThread.CurrentUICulture=cultureInfo;}一切正常,但模型绑定(bind)过程似乎发生在全局过滤器之

c# - C#如何选择带歧义和params

假设我有以下方法:publicstaticvoidMyCoolMethod(paramsobject[]allObjects){}publicstaticvoidMyCoolMethod(objectoneAlone,paramsobject[]restOfTheObjects){}如果我这样做:MyCoolMethod("Hi","test");哪个被调用,为什么? 最佳答案 很容易测试-调用第二个方法。至于为什么-C#语言规范有一些关于如何解决不明确的函数声明的非常详细的规则。有很多关于SO周围接口(interface)、继承和

c# - 项目模板中的 <%# DataBinder.Eval(Container.DataItem ,"ColumnName") %> 究竟做了什么?

我是第一次使用DataList。一切正常,我可以在屏幕上看到数据。我在项目模板中使用此代码。这是我绑定(bind)的DataTableDataTabledt=newDataTable();dt.Columns.Add("AA");dt.Columns.Add("BB");dt.Columns.Add("CC");dt.Rows.Add("1","2","3");dt.Rows.Add("10","20","30");dt.Rows.Add("100","200","300");dt.Rows.Add("1000","2000","3000");DataList1.DataSource=

c# - DropCreateDatabaseIfModelChanges EF6 导致 System.InvalidOperationException : The model backing the context has changed

迁移到EntityFramework6后,我在构建服务器上执行单元测试时遇到错误。我正在使用DropCreateDatabaseIfModelChanges初始化程序。当我将其更改为MigrateDatabaseToLatestVersion时一切正常,但我想坚持使用之前的初始化程序。我得到的错误是:System.InvalidOperationException:System.InvalidOperationException:Themodelbackingthe'AppContext'contexthaschangedsincethedatabasewascreated.Consi