Vli*_*nce 22 asp.net-mvc visual-studio-2010
我已经创建了一个新的C#asp.net mvc 4.0(beta)Internet应用程序,我在Visual Studio 2010(sp1)的"添加视图"对话框中有一些奇怪的行为.当我决定创建强类型视图时,在"添加视图"对话框中,"模型"类下拉列表不会显示我的ViewModel类.
为了记录,是的,我在触发Add View对话框之前编译了应用程序.
我相信我已经确定了问题,但不知道如何解决它.如果有人关心重现行为,下面是重复步骤:
看来,只要我创建一个实现IAutofacRegistration接口并构建应用程序的类,我就不再能够在该下拉列表中查看我的ViewModel.
任何人都可以确认他们是否得到与我相同的结果?更重要的是,如何解决这个问题呢?
重要提示:我已尝试使用mvc 3.0应用程序执行完全相同的步骤,并且会发生完全相同的行为...因此,这与BETA版本无关.
真诚的文斯
小智 15
如果收到错误消息:"正在运行转换:输入文件似乎使用此模板不支持的架构版本.这可能导致编译错误.请使用'添加新生成的项'添加更新的模板".
您使用的是EF 5.x. 您必须将EF 5.x的元数据添加到T4模板.在文件头中调用DefineMetadata()
<#@ template language="C#" debug="false" hostspecific="true"#>
<#@ import namespace="System.Text.RegularExpressions" #>
<#@ include file="EF.Utility.CS.ttinclude"#><#@ output extension=".cs"#><#
DefineMetadata();
Run Code Online (Sandbox Code Playgroud)
在模板底部创建方法
private void DefineMetadata()
{
TemplateMetadata[MetadataConstants.TT_TEMPLATE_NAME] = "CSharpDbContext.Types";
TemplateMetadata[MetadataConstants.TT_TEMPLATE_VERSION] = "5.0";
TemplateMetadata[MetadataConstants.TT_MINIMUM_ENTITY_FRAMEWORK_VERSION] = "5.0";
}
Run Code Online (Sandbox Code Playgroud)
我在2个小时内疯狂地解决了这个问题,然后从解决方案中的Properties-folder中删除了Assembly.cs.在我重新构建解决方案之后,"Add-view"模型 - 下拉突然显示可以找到我所有的ViewModel,这很奇怪.
我想Assembly.cs中定义的程序集版本在某种程度上与项目中使用的实际版本混在一起.无论如何,它现在适用于我的情况.
更新:截至撰写本文时,我无法再重现该错误。也许我使用的 NuGet 包已更新到较新的版本并顺便修复了错误。
\n\n我会将这篇文章标记为已关闭。
\n\n感谢大家\xe2\x80\x99s对此的投入!
\n\n文斯
\n| 归档时间: |
|
| 查看次数: |
21083 次 |
| 最近记录: |