小编Sha*_*awn的帖子

MVC3验证 - 从组中需要一个

给定以下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

36
推荐指数
2
解决办法
1万
查看次数

设计模式命名与澄清:提供者,服务,经纪人

有人可以为我定义提供者,服务和经纪人之间的概念差异吗?

我经常编写MVC应用程序并将大部分业务逻辑卸载到其他类.没什么好看的,只需传递参数并接收回POCO实例.

什么是正确的标签,让那些课程为我的控制器执行繁重的工作?

c# design-patterns naming-conventions asp.net-mvc-3

15
推荐指数
2
解决办法
5006
查看次数

MVC3 - 放置自定义属性类的位置

我正在深入研究自定义验证属性,并且很想知道其他人如何构建项目.您通常在哪里存储自定义属性?

我的第一个想法是简单地创建一个新文件夹并完成它.

有什么建议?

custom-attributes asp.net-mvc-3

13
推荐指数
2
解决办法
7265
查看次数

MVC3:一个控制器是否需要Windows身份验证,而第二个允许匿名?

我有一个控制器在内部Web应用程序中呈现需要进行Windows身份验证的页面.是否存在第二个控制器,用于基于JSON的查询到系统中,不需要进行Windows身份验证?那可能吗?看来我此刻只能做一个或另一个.

有什么建议?

authentication asp.net-mvc asp.net-mvc-3

12
推荐指数
2
解决办法
1万
查看次数

C#IDisposable使用:最佳实践

我已经在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)

c# coding-style idisposable using

8
推荐指数
1
解决办法
2960
查看次数

MVC3 + Ninject:注入User IPrincipal的正确方法是什么?

我已经看到以下两个用于注入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)

两者有什么不同吗?是首选吗?

dependency-injection ninject iprincipal asp.net-mvc-3

8
推荐指数
1
解决办法
1905
查看次数

MOQ - 模拟一个Dictionary <string,double>对象

我为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的推荐方法是什么?

tdd moq asp.net-mvc-3

2
推荐指数
1
解决办法
2272
查看次数