小编DCS*_*non的帖子

如何使用数据注释属性类来使表单中的空字符串失败?

我试图在表单中要求一个文本输入字段,这意味着表单中需要有一些东西.但是,[Required]在我的模型中添加标签不起作用.具体来说,查看User Name属性:

public class ColumnWidthMetaData {
    [DisplayName("Column Name")]
    [Required]
    public string ColName { get; set; }

    [DisplayName("Primary Key")]
    public int pKey { get; set; }

    [DisplayName("User Name")]
    [Required]
    public string UserName { get; set; }

    [DisplayName("Column Width")]
    [Required]
    public int Width { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这允许空字符串通过模型验证,并在尝试为用户名插入NULL值时最终引发数据库错误.

如何更改这些属性,以便他们执行他们应该执行的操作?

c# forms validation asp.net-mvc-4

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

如何使用类型变量中的类型参数创建表达式<Func <>>

我想写一个如下声明:

Expression<Func<AClass, bool>> filter = x => true;
Run Code Online (Sandbox Code Playgroud)

除了代替之外AClass,我想使用Type在运行时确定的变量.所以,概念上是这样的:

Type aClassType = methodParameter.GetType();
Expression<Func<aClassType, bool>> filter = x => true;
Run Code Online (Sandbox Code Playgroud)

显然语法会有点不同.我假设我需要使用某种反思或其他幻想.

结束目标

这里的最终目标有点复杂,所以我为上面的例子极大地简化了事情..Where将使用此委托的实际调用看起来更像是:

var copy = iQ;

...

copy = copy.Where( p1 => iQ.Where( p2 => pgr2.Key == p1.Key && p2.DataField == column.DataField && p2.ColumnText.Contains( requestValue ) ).Any() );
Run Code Online (Sandbox Code Playgroud)

p1和p2的所有属性都是IQueryableiQ 元素类型的父类的属性.我想要创建的Type变量将是iQ的实际元素类型,即子类.

我该怎么做?

目前的进展

根据下面的答案,我写了这个测试代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;

namespace IQueryableWhereTypeChange {
    class Program {
        static void Main( string[] …
Run Code Online (Sandbox Code Playgroud)

c# linq types expression

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

获取ListBox中的选定值列表

已经存在大量投票的问题,这里使用jQuery从下拉列表中获取所选值.

该答案几乎适用于列表框,但如果选择了多个值,则结果是一个字符串,其中所有值都连接在一起.这没用.我需要每个选定选项的文本值的集合(列表,数组等).

目前我在想我将使用其他问题的大部分答案,但最后没有.text(),然后迭代匹配.好主意?

jquery listbox

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

使用Checkboxes绑定到具有强类型MVC视图的Bools列表列表

我正在使用MVC 4,.Net 4和Visual Studio 2012.

我正在尝试使用一个相当复杂的模型与我的一个观点,我遇到了严重的麻烦,让它正确绑定.

该模型使用整数键包装一个Dictionary,并将值列为bools列表.

基本上,搜索是在整数表示的项目上进行的,每个项目都有几个搜索项,对于每个项,我们都有一个结果列表.我在页面上显示结果,每个结果旁边都有一个复选框.对于每个结果,用户将通过选中该框来指示他们是否想要通过下一个Action完成某些操作.

此时,复选框显示正确,包括控制器的预设值,但是当我按下表单底部的提交按钮时,出现此错误:

Specified cast is not valid.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidCastException: Specified cast is not valid.
Run Code Online (Sandbox Code Playgroud)

在我看来,与使用字典有关,我被告知这不适合作为模型.我可能不得不改变别的东西,但除非我绝对必须,否则我宁愿不改变.似乎这里可能有一个答案:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx,或者asp.net mvc中复杂类型的复选框列表,或者如何在ASP.NET MVC上为GET和POST操作绑定Dictionary类型参数,但是在我把问题全部写完之后我发现了这些并且我还没想到它,所以也许有人可以帮我一把.

这是堆栈跟踪的顶部:

[InvalidCastException: Specified cast is not valid.]
   System.Web.Mvc.CollectionHelpers.ReplaceDictionaryImpl(IDictionary`2 dictionary, IEnumerable`1 newContents) +131

[TargetInvocationException: Exception has been …
Run Code Online (Sandbox Code Playgroud)

checkbox asp.net-mvc dictionary viewmodel razor

5
推荐指数
1
解决办法
2885
查看次数