问题列表 - 第46623页

使用ASP .NET MVC模型值来验证另一个模型值?

我有这样的模型类:

public class SomeClass
{
    public int EmployeeId {get;set;}
    public int DayTotal {get;set}
}
Run Code Online (Sandbox Code Playgroud)

对于此模型类,我正在为'DayTotal'属性创建自定义ValidationAttribute.自定义验证器将针对另一个定义允许的最大天数的表检查输入的值'DayTotal'值.

在验证器中编写查询时,如何从"创建"视图中引用所选的"EmployeeId"?

public class DayTotalAttribute : ValidationAttribute
{
    ProjectDBContext db = new ProjectDBContext();

    public override bool IsValid(object value)
    {
        if (value == null)
        {
            return false;
        }

        var products = from p in db.EmployeeDayMax
                       where p.EmployeeId = ???
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:

我的解决方案采取了不同的方法.有用的答案让我在其他地方寻找.此博客由斯科特谷有助于提供一个更简单的方法:

在我的模型中 - >

   public class SomeClass : IValidateObject
   {
         public int EmployeeId {get; set;}
         public int DayTotal {get; set;}

         public IEnumerable<ValidationResult> Validate(ValidationContext …
Run Code Online (Sandbox Code Playgroud)

c# validation model asp.net-mvc-3

9
推荐指数
1
解决办法
5524
查看次数

++ i与i ++:现代编译器有什么区别吗?

可能重复:
在C++中i ++和++ i之间是否存在性能差异?

我明白那个:

i++;
Run Code Online (Sandbox Code Playgroud)

应该采取更多的指示

++i;
Run Code Online (Sandbox Code Playgroud)

因为它生成了一个你不需要使用的中间结果,所以人们把"++ i"放在对中间结果毫无用处的代码行上.

但是,编译器非常聪明,他们可以判断结果是否被使用.他们可以说出各种各样的事情.但它们并不神奇

所以我很好奇 - 在现代编译器上确实选择了另一种实际问题,或者它是否只是简单地编译成相同的机器代码?

c c++ compiler-construction

3
推荐指数
1
解决办法
712
查看次数

确定文本字符串中的行数?

作为打印类的一部分,我希望能够在多个页面上打印长字符串,但我不知道如何计算整个字符串的高度,我将通过首先计算字符串中的行数来确定.我知道我可以计算换行符的数量,但我也使用自动换行,因此每当一行超过页面宽度时,就会添加换行符.所以我想我可以计算换行符的数量,并找出每一行的宽度,并找出是否需要每行的自动换行换行符,但这似乎是一个过于复杂的问题我想可以更简单地完成.

e.Graphics.DrawString(multiPageString, new Font("Courier New", 12), Brushes.Black, new RectangleF(0, 0, 810, pageHeight));
Run Code Online (Sandbox Code Playgroud)

如果您有任何建议,请告诉我们谢谢!

c# drawstring

4
推荐指数
2
解决办法
7248
查看次数

用于简单递归的Python装饰器?在标准库或其他地方?

我正在寻找一个可以使函数递归的Python装饰器.我发现自己写了很多这样的函数:

def xyz(data):
    if not isinstance(data, TypeThatDenotesSingularity):
        return map(xyz, data)
    return singular_xyz(data)
Run Code Online (Sandbox Code Playgroud)

我认为那里必须有一个装饰器(在标准库中?)可以减少一点点的符号:

@recursive(TypeThatDenotesSingularity)
def xyz(data):
    return singular_xyz(data)
Run Code Online (Sandbox Code Playgroud)

我一直在寻找,但我似乎无法到达任何地方.也许我错过了一些必要的术语?

谢谢你指点我正确的方向!

python recursion decorator

6
推荐指数
1
解决办法
873
查看次数

为什么包装Data.Binary.Put monad会造成内存泄漏?(第2部分)

正如在我之前的问题中,我正在尝试将Data.Binary.Put monad包装到另一个monad中,以便稍后我可以问它"它要写多少字节"或"文件中的当前位置是什么"等问题.

之前,我认为理解为什么它在使用一个简单的(IdentityT?)包装器时会泄漏内存会导致我解决我的问题.但即使你们帮我解决了这个简单的包装器的问题,用StateT或WriterT之类的东西包装它仍然会消耗太多的内存(并且通常会崩溃).

例如,这是我试图包装它的一种方式,它为大输入泄漏内存:

type Out = StateT Integer P.PutM ()

writeToFile :: String -> Out -> IO ()
writeToFile path out = BL.writeFile path $ P.runPut $ do runStateT out 0
                                                         return ()

是一个更完整的代码示例,演示了该问题.

我想知道的是:

  1. 程序内部发生什么导致内存泄漏?
  2. 我该怎么办才能修复它?

对于我的第二个问题,我想我应该更详细地解释一下我打算在磁盘上查看数据:它基本上是一个树结构,其中树的每个节点都表示为它的子节点的偏移表(加上一些附加数据).因此,要计算第n个孩子到偏移表中的偏移量,我需要知道子项0到n-1的大小加上当前偏移量(为了简化事情,假设每个节点都有固定数量的子节点).

谢谢你的期待.

更新:感谢nominolo我现在可以创建一个包裹Data.Binary.Put的monad,跟踪当前偏移并几乎不使用任何内存.这是通过放弃使用StateT转换器来支持使用Continuations的不同状态线程机制来完成的.

像这样:

type Offset = Int

newtype MyPut a = MyPut
  { unS :: forall r . (Offset -> a -> P.PutM r) -> Offset -> P.PutM r }

instance Monad MyPut where
  return a = MyPut …

binary monads haskell memory-leaks monad-transformers

6
推荐指数
1
解决办法
537
查看次数

Jquery自动完成样式

在设计jQuery自动完成插件的样式时,我将以下HTML代码硬连线到我的页面:

<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 1; top: 0px; left: 0px; display: none; "></ul>
Run Code Online (Sandbox Code Playgroud)

如何通过HTML禁用样式并通过CSS完成它?我不认为我的CSS文件会覆盖那种风格.

任何帮助都可以

jquery jquery-autocomplete

9
推荐指数
2
解决办法
3万
查看次数

防止jQuery中的双表单提交

我有一个用户用来输入有关发布信息的表单.完成后,单击"保存"进行更新.但是,在一些罕见的情况下(15,000条记录中有10条),用户双击了保存按钮并导致双重表单提交重复发布项目.

我尝试使用它来防止它:

$('input[type=submit]').click(function(){
    $('input[type=submit]').attr('disabled',true);
    //return true;
});
Run Code Online (Sandbox Code Playgroud)

但问题是,它在Safari/Firefox等中完美运行,但在Internet Explorer 8中不起作用(可能不适用于6和7)

当我在IE8中按保存时,该按钮被禁用,就是这样,根本没有提交表单.

(我尝试过但没有返回true;)

forms jquery internet-explorer-8

6
推荐指数
1
解决办法
6388
查看次数

用于大量数据的Javascript图表库

有谁知道可以处理庞大数据集的Javascript图表库?

"巨大",我的意思是绘制一个大约1,000行和25,000个数据点的折线图.(每行的点数分布不均匀.很多行的点数很少,但有些点数最多为4,000.)这是一个示例数据文件.

目前我正在使用Highcharts,但是在绘制示例文件方面它太慢了.这是我的测试网站,使用Highcharts绘制示例数据文件.警告:转到该页面会耗尽您的处理器一段时间:)

我不想使用Flash或Silverlight.

我希望使用Javascript,以便我的用户可以缩放+平移图表,并打开/关闭线等.但如果这是任何Javascript图表库处理的数据太多,那么我将不得不图服务器端.

javascript charts dataset

26
推荐指数
3
解决办法
2万
查看次数

关于继承和运算符重载的OOP设计问题

对于数学包,我正在尝试为不同类型的矩阵提供类,例如典型的矩形矩阵,三角矩阵,对角矩阵等.原因很自然地是节省了有效存储和特殊矩阵的高效算法实现.但是我仍然希望具有重载运算符的灵活性,其中C = A + B将A和B作为任何类型的矩阵并返回相应的结果(如果其中一个操作数是矩形的,则结果可以降级为典型的矩形矩阵) .

我想到了两个可能的想法,这两个想法都很混乱:

(1)IMatrix接口,它列出了需要为每种类型的矩阵实现的所有方法,例如转置,反转等,其有效实现对于每种类型的矩阵是不同的.这里有两个问题:(a)运算符重载是静态方法,因此不能在接口中列出,甚至不能在实现接口的基类中列出.运算符重载必须分别写在每个类中,我不可能实现C = A + B类型的操作(如上所述),没有在客户端代码中进行混乱的类型检查和转换,我真的想避免.(b)当我定义运算符重载时,我不能将两个操作数都作为接口:即我不能在DiagonalMatrix类中执行以下操作:

public override IMatrix operator +(IMAtrix lhsMatrix, IMatrix rhsMatrix)
{ ... }
Run Code Online (Sandbox Code Playgroud)

(2)可以有一个矩阵类,矩阵类型变量存储在类中(可以是枚举).根据类型,我们可以实现数据结构和算法.然后,操作员重载将无缝地工作.这里有一个问题:(a)在启动特定算法之前,类可能会有很大的可能用于检查矩阵类型的switch-case语法.对于每个二元运算符,我必须有n ^ 2个case,n是我想要实现的矩阵类型的数量.也可能是维护噩梦.

看起来,如果没有运算符重载细节,我可以使用工厂模式访问者模式,但不能使用op重载.什么是解决这个问题的最佳方法?

到目前为止我找到的资源:

  1. 这里有一个相关的主题
  2. 解释另一个OS C#Numerics包的开发面临的类似问题.

编辑:

4/25/2011:到目前为止,我已经找到了有关此问题的更多资源.

c# oop design-patterns

7
推荐指数
1
解决办法
869
查看次数

在以下情况下,活动生命周期中调用了哪些方法:

假设我有一个Hello World单个Activity应用程序.我启动这个应用程序.

在每种情况下调用哪些方法:

  • 按下主页按钮:
    按下后退按钮:?
    收到电话:?

一旦用户通过应用程序图标再次启动应用程序,就会调用哪些方法(假设操作系统没有"其他应用程序需要内存条件"):

  • 按下主页按钮:?
    按下后退按钮:?
    收到电话:?

谢谢大家.

编辑:额外信用:用户如何在onPause不调用的情况下调用onStop

lifecycle android android-activity

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