给定以下viewmodel:
public class SomeViewModel
{
public bool IsA { get; set; }
public bool IsB { get; set; }
public bool IsC { get; set; }
//... other properties
}
Run Code Online (Sandbox Code Playgroud)
我希望创建一个自定义属性,验证至少有一个可用属性为true.我设想能够将属性附加到属性并分配组名称,如下所示:
public class SomeViewModel
{
[RequireAtLeastOneOfGroup("Group1")]
public bool IsA { get; set; }
[RequireAtLeastOneOfGroup("Group1")]
public bool IsB { get; set; }
[RequireAtLeastOneOfGroup("Group1")]
public bool IsC { get; set; }
//... other properties
[RequireAtLeastOneOfGroup("Group2")]
public bool IsY { get; set; }
[RequireAtLeastOneOfGroup("Group2")]
public bool IsZ { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望在表单提交之前在客户端验证表单更改中的值,这就是为什么我更愿意在可能的情况下避免使用类级别属性. …
asp.net-mvc jquery-validate unobtrusive-validation asp.net-mvc-3
有人可以为我定义提供者,服务和经纪人之间的概念差异吗?
我经常编写MVC应用程序并将大部分业务逻辑卸载到其他类.没什么好看的,只需传递参数并接收回POCO实例.
什么是正确的标签,让那些课程为我的控制器执行繁重的工作?
我正在深入研究自定义验证属性,并且很想知道其他人如何构建项目.您通常在哪里存储自定义属性?
我的第一个想法是简单地创建一个新文件夹并完成它.
有什么建议?
我有一个控制器在内部Web应用程序中呈现需要进行Windows身份验证的页面.是否存在第二个控制器,用于基于JSON的查询到系统中,不需要进行Windows身份验证?那可能吗?看来我此刻只能做一个或另一个.
有什么建议?
我已经在USING语句中包装我的OracleConnection和OracleCommand对象一段时间了,但是,在运行代码分析器之后,我发现OracleParameter也实现了IDisposable.以下代码是否正确?是否有更好的可读性或结构技术?乍一看,它似乎与USING语句混杂在一起:
using (OracleConnection conn = new OracleConnection(connectionstring))
{
conn.Open();
using (OracleCommand cmd = new OracleCommand(sql, conn))
{
cmd.BindByName = true;
using (OracleParameter param1 = new OracleParameter("p1", OracleDbType.Int32, System.Data.ParameterDirection.Input))
{
param1.Value = int.Parse(value1);
cmd.Parameters.Add(param1);
}
using (OracleParameter param2 = new OracleParameter("p2", OracleDbType.Varchar2, System.Data.ParameterDirection.Input))
{
param2.Value = value2;
cmd.Parameters.Add(param2);
}
using (OracleDataReader dr = cmd.ExecuteReader())
{
// loop data here...
}
}
}
Run Code Online (Sandbox Code Playgroud) 我已经看到以下两个用于注入User IPrincipal的示例:
方法1:
kernel.Bind<IPrincipal>()
.ToMethod(context => context.Kernel.Get<RequestContext>().HttpContext.User)
.InRequestScope();
Run Code Online (Sandbox Code Playgroud)
方法2:
kernel.Bind<IPrincipal>()
.ToMethod(context => HttpContext.Current.User)
.InRequestScope();
Run Code Online (Sandbox Code Playgroud)
两者有什么不同吗?是首选吗?
我为Moq设置了以下设置:
... other code to setup bigMoq object ...
var innerMoq = new Mock<IDictionary<string, double>>();
innerMoq.SetupGet(d => d["COMPLEX"]).Returns(6d);
innerMoq.SetupGet(d => d["MEDIUM"]).Returns(8d);
innerMoq.SetupGet(d => d["SIMPLE"]).Returns(10d);
bigMoq.SetupGet(d => d.ComplexityWeights).Returns(x.Object);
Run Code Online (Sandbox Code Playgroud)
运行测试方法时,我传入bigMoq作为争论.
以下作品:
bigMoqVar.ComplexityWeights["COMPLEX"] // correctly returns 6
Run Code Online (Sandbox Code Playgroud)
但是,这不是:
bigMoqVar.ComplexityWeights.ContainsKey("COMPLEX") // returns false instead of true
Run Code Online (Sandbox Code Playgroud)
在innerMoq上支持ContainsKey的推荐方法是什么?
asp.net-mvc ×2
c# ×2
coding-style ×1
idisposable ×1
iprincipal ×1
moq ×1
ninject ×1
tdd ×1
using ×1