小编Cat*_*ICU的帖子

ASP.NET MVC架构:ViewModel的组合,继承还是重复?

我正在使用ASP.NET MVC 3和Entity Framework 4.1 Code First.

假设我有一个User实体:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }        
}
Run Code Online (Sandbox Code Playgroud)

在我编辑它时我UserController想添加一个PasswordConfirmation字段并验证PasswordConfirmation == Password

1.通过构图

我的第一次尝试是:

public class EditUserModel
{
    [Required]
    public User User { get; set; }

    [Compare("User.Password", ErrorMessage = "Passwords don't match.")]
    public string PasswordConfirmation { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下客户端验证 …

.net c# architecture asp.net-mvc

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

如何Web部署面向Entity Framework 4.2 2011年6月CTP的Web应用程序

我在一个小型Web应用程序(ASP.NET MVC 3)中使用Entity Framework 4.2 June 2011 CTP,因为它支持枚举.

我尝试使用Web部署部署它,我收到以下错误:

您尝试使用的应用程序池将"managedRuntimeVersion"属性设置为"v4.0".此应用程序需要'v4.2'.

如何创建在.NET 4.2上运行的应用程序池?

编辑: Web应用程序可以使用4.0应用程序池,因此真正的问题是如何在使用Visual Studio发布选项时禁用应用程序池运行时版本检查?

.net iis entity-framework webdeploy

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

Wix heat.exe与项目收获类型

我使用维克斯3.5的最新版本和我想要生成使用heat.exe片段文件.命令行是:

"%WIX%\bin\heat.exe" project "MyProj.csproj" -pog Binaries -pog Content -suid -directoryid 
INSTALLLOCATION -ag -template fragment -out "Files.wxs"
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是生成的文件中缺少我的项目所依赖的程序集.这是预期的行为吗?我该如何添加它们?

我应该使用dir收获类型吗?如何删除*.pdb或*.vshost.exe呢?

我想将它与CI服务器(TeamCity)一起使用

编辑:我尝试过-pog Satellites,也没用

.net teamcity continuous-integration wix

10
推荐指数
2
解决办法
9537
查看次数

Wix&T4:没有"自定义工具"选项

我想使用T4生成片段,但在将.tt文件添加到Wix项目后,此文件没有"自定义工具"选项.右键单击.tt文件时没有菜单项"运行自定义工具".

这有什么黑客攻击吗?我正在使用VS 2010和最新的Wix 3.5

.net c# t4 windows-installer wix

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

在没有魔术字符串的情况下将屏幕去耦

我的WPF项目将按如下方式组织:

Screens
   Group1
      Screen1
         View.xaml
         ViewModel.cs
   Group2
      Screen2
         View.xaml
         ViewModel.cs
Run Code Online (Sandbox Code Playgroud)

要显示Screen1来自Screen2我将使用这样的东西:ScreenManager.Show("Group1.Screen1")这在Screens.Group1.Screen1View和ViewModel 的命名空间中查找(使用反射)并实例化它们.

我怎样才能消除魔法字符串,不耦合Screen1Screen2(我不想班Screen2使用的Screen1命名空间).我也想要一些屏幕发现(自动完成/智能感知)

或者可能采用某种方式(自动化测试)来验证所有调用ScreenManager.Show是否有效.

更新: 我想出了这个:

public class ScreenNames
{
    public Group1Screens Group1;

    public class Group1Screens
    {
        public ScreenName Screen1;
    }
}

public sealed class ScreenName
{
    private ScreenName() { }
}

public class ScreenManager : IScreenManager
{
    public void Show(Expression<Func<ScreenNames, ScreenName>> x) {}
}
Run Code Online (Sandbox Code Playgroud)

用法:

screenManager.Show(x=>x.Group1.Screen1);
Run Code Online (Sandbox Code Playgroud)

不理想,但我认为违反DRY仍然比魔术弦更好.我可以自动测试(通过反射)所有调用都是有效的.

c# architecture wpf mvvm magic-string

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

编辑XAML时,Visual Studio 2010会随机崩溃

在WPF应用程序中编辑XAML时,Visual Studio 2010 RTM会随机崩溃.我正在Win 7上运行它完全更新.

已安装的扩展/插件是:

  • ReSharper的
  • PowerCommands

崩溃日志为:错误应用程序名称:devenv.exe,版本:10.0.30319.1,时间戳:0x4ba1fab3错误模块名称:clr.dll,版本:4.0.30319.1,时间戳:0x4ba1d9ef异常代码:0xc0000005错误偏移量:0x0017f146错误进程ID:0xd78错误应用程序启动时间:0x01caedc7341e18e3错误应用程序路径:C:\ Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe错误模块路径:C:\ Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll

有没有人遇到过这个?也许找到一个解释?

.net crash wpf xaml visual-studio-2010

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

msbuild不支持部署项目:我的选择是什么?

我正在使用TeamCity自动使用msbuild构建我的解决方案,似乎不支持.vdproj.我有什么选择来构建msi /安装程序?

  1. 在构建服务器上安装Visual Studio
  2. 使用其他安装程序(WiX,nullsoft,innosetup?)
  3. ?!

我已经运行TeamCity并构建.zip,我正在寻找最快的解决方案.

编辑:我忘了提到它是一个WPF .exe应用程序

.net msbuild windows-installer vdproj

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

Excel GoalSeek算法

有没有人有这个算法的代码?任何基于C语言的编程语言都可以,但我更喜欢C#.

我可以尝试实现它,但我确定我不是第一个......

编辑:这不是家庭作业,这是一个"gimme teh codez"的问题:DI只是不想重新发明轮子

.net c# algorithm excel

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

MVC验证消息国际化

例如,我想要这个默认的ASP.NET MVC 4验证消息:The value 'qsdqsdqs' is not valid for Montant用法语显示.

我找到了这个软件包http://nuget.org/packages/Microsoft.AspNet.Mvc.fr/并安装了它,但我该如何让它工作?

我添加<globalization culture="fr-FR" uiCulture="auto:fr" />到web.config并引用了dll,但消息仍然是英文

c# validation internationalization asp.net-mvc-4

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

DataGridView,BindingList <T>,DataGridViewComboBoxColumn

所以,我有一个DataGridView使用BindingList作为数据源

DataGridView.DataSource = new  BindingList<Car>{...}
Run Code Online (Sandbox Code Playgroud)

哪里

public class Car
{
    public ColorName Color { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

public class ColorName
{
    public int Id {get; set;}
    public string Name{get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我使用Combobox专栏:

DataGridViewComboBoxColumn colorNameDataGridViewTextBoxColumn;
colorNameDataGridViewTextBoxColumn.DataPropertyName = "Color";
colorNameDataGridViewTextBoxColumn.HeaderText = "Color";
colorNameDataGridViewTextBoxColumn.Name = "Color";
colorNameDataGridViewTextBoxColumn.DisplayMember = "Name";
colorNameDataGridViewTextBoxColumn.ValueMember = "Id";
colorNameDataGridViewTextBoxColumn.DataSource = new ColorName[] {...};
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它发挥作用?!现在我得到一个例外,因为我认为它试图将Id转换为ColorName.

我尝试使用空的ValueMember或向ColorName类添加直接强制转换操作符但无法使其工作.

当然我可以在Car类中使用int来表示颜色,但不是很好.

正如您可能猜到的那些类实际上是Castle Project ActiveRecord-s.

欢迎任何想法!

.net castle-activerecord datagridview winforms

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

WPF - 将F键分配给按钮

我知道"_"而不是"&"但是如何将F1,F2 ...键指定给按钮?这是一个小应用程序,我不是直接点击事件处理程序使用命令,但我可以在必要时使用命令

.net c# wpf

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