我正在使用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
我的第一次尝试是:
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)
在这种情况下客户端验证 …
我在一个小型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发布选项时禁用应用程序池运行时版本检查?
我使用维克斯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,也没用
我想使用T4生成片段,但在将.tt文件添加到Wix项目后,此文件没有"自定义工具"选项.右键单击.tt文件时没有菜单项"运行自定义工具".
这有什么黑客攻击吗?我正在使用VS 2010和最新的Wix 3.5
我的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 的命名空间中查找(使用反射)并实例化它们.
我怎样才能消除魔法字符串,不耦合Screen1和Screen2(我不想班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仍然比魔术弦更好.我可以自动测试(通过反射)所有调用都是有效的.
在WPF应用程序中编辑XAML时,Visual Studio 2010 RTM会随机崩溃.我正在Win 7上运行它完全更新.
已安装的扩展/插件是:
崩溃日志为:错误应用程序名称: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
有没有人遇到过这个?也许找到一个解释?
我正在使用TeamCity自动使用msbuild构建我的解决方案,似乎不支持.vdproj.我有什么选择来构建msi /安装程序?
我已经运行TeamCity并构建.zip,我正在寻找最快的解决方案.
编辑:我忘了提到它是一个WPF .exe应用程序
有没有人有这个算法的代码?任何基于C语言的编程语言都可以,但我更喜欢C#.
我可以尝试实现它,但我确定我不是第一个......
编辑:这不是家庭作业,这是一个"gimme teh codez"的问题:DI只是不想重新发明轮子
例如,我想要这个默认的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,但消息仍然是英文
所以,我有一个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.
欢迎任何想法!
我知道"_"而不是"&"但是如何将F1,F2 ...键指定给按钮?这是一个小应用程序,我不是直接点击事件处理程序使用命令,但我可以在必要时使用命令
.net ×9
c# ×6
wpf ×3
architecture ×2
wix ×2
algorithm ×1
asp.net-mvc ×1
crash ×1
datagridview ×1
excel ×1
iis ×1
magic-string ×1
msbuild ×1
mvvm ×1
t4 ×1
teamcity ×1
validation ×1
vdproj ×1
webdeploy ×1
winforms ×1
xaml ×1