小编Sco*_*ker的帖子

ModelState.AddModelError - 如何添加不属于属性的错误?

我在检查我的数据库Create(FooViewModel fvm){...},看是否fvm.prop1fvm.prop2在该组合已经存在; 如果是这样,我想向modelstate添加一个错误,然后返回整个视图.我试过了:

public ActionResult Create(FooViewModel fvm){
    if (ThatComboAlreadyExists(fvm)) {
      ModelState.AddModelError("Model", "There is already one like that");
      return View(fvm);
    }
}
Run Code Online (Sandbox Code Playgroud)

...但我没有显示错误Html.ValidationSummary,这是我认为它们会出现的地方.我怀疑"模型"不是正确的关键,但我一直无法找到任何谷歌.

modelstate asp.net-mvc-2-validation asp.net-mvc-2

180
推荐指数
2
解决办法
14万
查看次数

ASP.NET MVC 2 - Html.DropDownList与ViewModel的混淆

我对如何在ASP.NET MVC 2.0 R2上使用新的强类型Html.DropDownListFor帮助程序感到十分迷茫和困惑

在我写的视图中:

<%= Html.DropDownListFor(m => m.ParentCategory, new SelectList(Model.Categories, "CategoryId", "Name", Model.ParentCategory), "[ None ]")%>

<%= Html.ValidationMessageFor(m => m.ParentCategory)%>
Run Code Online (Sandbox Code Playgroud)

因此我的Model对象是:

public class CategoryForm : FormModelBase
{
    public CategoryForm()
    {
        Categories = new List<Category>();

        Categories.Add(new CategoryForm.Category() {
                           CategoryId = 1, 
                           Name = "CPUs" });
        Categories.Add(new CategoryForm.Category() { 
                           CategoryId = 2, 
                           Name = "Memory" });
        Categories.Add(new CategoryForm.Category() { 
                           CategoryId = 3, 
                           Name = "Hard drives" });
    }

    // ...other props, snip... //

    public Category ParentCategory { get; set; }

    public …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc html-helper viewmodel asp.net-mvc-2 drop-down-menu

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

更改Visual Studio 2010主题

如何安装我下载到VS2010中的.vssettings文件来"应用"主题?

themes visual-studio-2010

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

InvalidCastException:无法将[base]类型的对象转换为[subclass]类型

我有一个继承自MembershipUser的自定义CustomMembershipUser.

public class ConfigMembershipUser : MembershipUser
{
    // custom stuff
}
Run Code Online (Sandbox Code Playgroud)

我使用Linq-to-SQL从数据库读取并获取User实体; 要使此功能成为MembershipUser,我已定义了一个显式转换:

public static explicit operator MembershipUser(User user)
{
    DateTime now = DateTime.Now;

    if (user == null) return null;

    return new MembershipUser("MagicMembershipProvider", 
                              user.DisplayName, user.Id, 
                              user.Email, "", "", true, false, 
                              now, now, now, now, now);
}
Run Code Online (Sandbox Code Playgroud)

这个演员工作正常:

MembershipUser memUser = (MembershipUser) entityUser;
Run Code Online (Sandbox Code Playgroud)

但是,对CustomMembershipUser的第二次强制转换失败:

MembershipUser memUser = (MembershipUser) entityUser;
CustomMembershipUser custUser = (CustomMembershipUser) memUser;
Run Code Online (Sandbox Code Playgroud)

如果我将演员阵容改为

CustomMembershipUser custUser = memUser;
Run Code Online (Sandbox Code Playgroud)

我得到一个intellisense错误告诉我隐式强制转换不起作用,但存在显式强制转换.

...最重要的是,我无法明确定义从基类到子类的强制转换.我尝试过但失败了.我最不了解的是为什么从基类到子类的转换会失败?根据定义,子类具有基类的所有属性,因此问题是什么.

编辑

我试图定义从MembershipUser到CustomMembershipUser的显式转换(首先我为转换定义了一个私有构造函数):

private ConfigMembershipUser(MembershipUser …
Run Code Online (Sandbox Code Playgroud)

c# casting membershipuser

23
推荐指数
2
解决办法
6万
查看次数

RegularExpressionAttribute - 如何使其对客户端验证不区分大小写?

我有一个用于客户端验证的字符串:

private const String regex = @"^(?:\b(?:\d{5}(?:\s*-\s*\d{5})?|([A-Z]{2})\d{3}(?:\s*-\s*\1\d{3})?)(?:,\s*)?)+$";
Run Code Online (Sandbox Code Playgroud)

我在我的[RegularExpression(regex, ErrorMessage = "invalid")]属性中使用此字符串.

我知道/iJavascript正则表达式的标志用于使其不区分大小写,但只是将其添加到我的正则表达式的末尾(即@"^....$/i"不工作 - 正则表达式验证完全失败,无论输入什么(有效或无效) ).

我错过了什么?

regex client-side-validation asp.net-mvc-2

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

AvalonEdit ::如何在UndoStack中保留当前状态?

我目前正在HTML WYSIWYG /"源代码"并排编辑器中实现AvalonEdit.当用户从设计模式(a RichTextBox)切换到源模式(AvalonEdit TextEditor)时,RTB中的XAML将转换为HTML并写入TextEditor.Document.Text属性.

这显然消除了撤销堆栈.

如何将文档的状态推送到UndoStack用户可以"返回"?我尝试将写入操作包装在a中RunUpdate() IDisposable,但这不起作用:

using (var _ = TextEditor.Document.RunUpdate())
{
   TextEditor.Document.Text = html;
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

avalonedit

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

编辑Resharper的INotifyPropertyChanged

当我有一个我声明实现然后INotifyPropertyChanged接口的类时,ReSharper将自动生成这个实现:

public event PropertyChangedEventHandler PropertyChanged;

[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged(string propertyName)
{
  var handler = PropertyChanged;
  if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
Run Code Online (Sandbox Code Playgroud)

我一直在编辑这个:

public event PropertyChangedEventHandler PropertyChanged = delegate { };

[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged(string propertyName)
{
   PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式编辑自动生成的代码吗?Resharper的文档对我来说不太清楚.

wpf resharper inotifypropertychanged

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

C#字符串运算符重载

G'Day Mates -

重载字符串运算符<,>,<=和> =的正确方法(不包括是否可取的参数)是什么?

我已经尝试了五种方式到星期天,我得到了各种错误 - 我最好的镜头是宣布一个部分类并从那里超载,但它不会因某些原因而起作用.

namespace System
{
   public partial class String
   {
       public static Boolean operator <(String a, String b)
       {
           return a.CompareTo(b) < 0;
       }

       public static Boolean operator >(String a, String b)
       {
           return a.CompareTo(b) > 0;
       }
   }
Run Code Online (Sandbox Code Playgroud)

}

c# operator-overloading

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

SQL - 从多列获取最新日期

假设包含以下内容的行集

EntryID    Name      DateModified   DateDeleted
-----------------------------------------------  
1          Name1     1/2/2003       NULL
2          Name1     1/3/2005       1/5/2008
3          Name1     1/3/2006       NULL
4          Name1     NULL           NULL  
5          Name1     3/5/2008       NULL
Run Code Online (Sandbox Code Playgroud)

澄清:

我需要一个值 - 来自BOTH列的最大非空日期.因此,在这种情况下,所有十个细胞中最大的.

sql

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

C#通用重载List <T>:如何做到这一点?

StringBuilder类允许您以非常直观的方式将方法调用链接到.Append(),. AppendFormat()以及其他类似的方法:

StringBuilder sb = new StringBuilder();
sb.Append("first string")
  .Append("second string);
Run Code Online (Sandbox Code Playgroud)

另一方面,List类的.Add()方法返回void - 因此链接调用不起作用.在我看来,这是Jayne Cobb不朽的话语"只是不要有任何意义".

我承认我对泛型的理解是非常基础的,但我想重载.Add()方法(和其他方法),以便它们返回原始对象,并允许链接.任何和所有的帮助将获得进一步的萤火虫报价奖励.

c# generics overloading

8
推荐指数
2
解决办法
2138
查看次数