我已更新到Visual Studio 2013更新2,现在我无法使用脚手架控制器.
问题不是项目特定的:当我尝试脚手架控制器时,我在ALL和ANY项目中收到以下错误:
There was an error running the selected code generator:
'Exception has been thrown by the target of an invocation.'
Run Code Online (Sandbox Code Playgroud)
它在更新到Visual Studio 2013更新2之前正在工作.
用谷歌搜索了这个问题,但各种建议都没有奏效
例如:
在我的上下文中评论OnModelCreating;
删除MvcScaffolding等软件包(我没有安装,也不能用于任何项目);
我已经修改/定制了一些模板,但它在更改后正在运行.
我卸载了Visual Studio 2013 Update 2,从而恢复到Visual Studio版本12.0.21005.1 REL.
问题已经消失.因此,问题肯定与Update 2有关.
有没有人(包括微软)知道修复?
Farruk Subhani的回答没有解决这个问题:问题清楚地表明删除对MVCScaffolding的引用并不能解决问题.
我已经添加了200点奖金,请按照明确说明的方式解决问题.
当与Razor一起使用时,我遇到了Html Helpers的困难.所述助手在MVC 2中与web表单视图引擎一起工作良好.但不是剃须刀.我在运行时得到的错误是:
Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
Source Error:
Line 1: @using Wingspan.Web.Mvc;
Line 2: @Html.IncrementalMenu(MenuBlock.Site)
Run Code Online (Sandbox Code Playgroud)
展开显示详细编译器输出显示:
d:\...\Views\Shared\MenuTop.cshtml(2,1): error CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
d:\...\Views\Shared\MenuTop.cshtml(2,7): error CS1503: Argument 1: cannot convert from 'void' to 'System.Web.WebPages.HelperResult'
Run Code Online (Sandbox Code Playgroud)
这向我表明剃刀不喜欢我的助手,IncrementalMenu,返回void(在MVC 2 Web表单引擎视图中工作正常).
我在编译时没有出现任何错误,尽管代码行(@ Html.IncrementalMenu(...))带有以下消息的红色下划线:
Cannot implicitly convert type 'void' to 'object'
Run Code Online (Sandbox Code Playgroud)
IncrementalMenu位于Wingspan.Web.Mvc命名空间中.它的签名如下:
public static void IncrementalMenu(this HtmlHelper html, MenuBlock menuBlock)
{
// Uses an HtmlTextWriter to …
Run Code Online (Sandbox Code Playgroud) 这是以下问题的后续内容:
MVC 3 + $ .ajax - 响应似乎是从部分视图缓存输出
那里有问题的详细描述.但是,我现在已经设法缩小了问题,这似乎与Html.EditorFor助手有关,因此是新问题.
问题:
我使用$ .ajax将数据发布到服务器,然后返回包含输入控件的部分视图的html.问题在于,尽管将新创建的对象传递给部分视图模型,但各种@ Html.EditorFor和@Html.DropDownListFor帮助程序返回OLD DATA!.
我可以通过在Html帮助器旁边打印出值来证明模型已正确地将新对象传递给帮助程序.即:
@Html.EditorFor(model => model.Transaction.TransactionDate)
@Model.Transaction.TransactionDate.ToString()
Run Code Online (Sandbox Code Playgroud)
如下图所示,@ Html.EditorFor返回错误的数据:
[请注意,Comentario文本框旁边的值是一个日期时间,因为我正在测试用每个帖子改变的值替换默认值,即DateTime.
如果我用一个普通的旧版@Html.TextBox()替换@Html.EditorFor for TransactionDate:
@Html.TextBox("Transaction_TransactionDate", Model.Transaction.TransactionDate)
Run Code Online (Sandbox Code Playgroud)
然后它为新的Transaction对象呈现正确的TransactionDate值,即DateTime.MinValue(01/01/0001 ...).
因此...
问题出在@ Html.EditorFor助手上.TextBoxFor和DropDownListFor也会出现问题.
问题是这些助手似乎缓存旧值.
我究竟做错了什么??!
我刚刚在自定义编辑器模板中尝试调试日期,在那里,ViewData.TemplateInfo.FormattedModelValue显示正确的值,即"01/01/0001".然而,一旦它到达Fiddler,响应将显示旧日期,例如上图中的"01/09/2011".
结果,我只是认为这里有一些缓存,但我没有设置,所以没有任何意义.
我刚刚更新到ASP.NET MVC 3 RC2.
我正在处理的示例应用程序现在每当呈现cshtml视图时都会产生以下错误:
CS0103:当前上下文中不存在名称"查看"
它失败了:
@{
View.Title = "MyView";
}
Run Code Online (Sandbox Code Playgroud)
...并且在Razor文件的代码中遇到View的任何其他地方都失败了.
我已将web.config从新的应用程序View文件夹复制到我的示例应用程序,但问题仍然存在.
一个全新的应用程序运行没有问题.
我还重建了解决方案,运行Clean Solution.没有快乐.
我几天没有研究过这个样本.所以它可能是一个与RC2无关的问题......
我正在使用ASP.NET MVC 3和C#.我有很多服务都有Init()方法.
所以,我想,继承是我最好的朋友.我试图从其他接口继承接口.
但是,我遇到了问题.
据我了解,一个接口可以从另一个接口继承.即,你可以这样做:
public interface ICaseService : IBaseService
{
CaseViewModel ViewModel { get; }
Case Case { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
哪里:
public interface IBaseService
{
void Init();
}
Run Code Online (Sandbox Code Playgroud)
因此,当我从ICaseService派生CaseService时,我将不得不实现该Init()
方法以及Case
属性和ViewModel
属性.
可以说我现在有一个控制器,它引用了ICaseService:
private readonly ICaseService service;
Run Code Online (Sandbox Code Playgroud)
在我的行动中,我认为我应该能够做到:
public virtual ActionResult MyAction()
{
service.Init();
}
Run Code Online (Sandbox Code Playgroud)
但是我收到一条错误消息,指出ICaseService
'不包含'的定义Init()
.
为什么?
我是否必须忘记从接口继承接口并在每个接口定义中键入Init()
方法?
以上是简化的方案.我的"基础"接口包含的定义多于Init().
我正在浏览一个大型网站(1600多页),使其通过优先级1 W3C WAI.因此,像图像标签之类的东西需要具有alt属性.
在没有alt属性的情况下查找img标签的正则表达式是什么?如果可能的话,有一个解释,所以我可以用来找到其他问题.
我在Visual Web Developer 2008的办公室里.编辑>>查找对话框可以使用正则表达式.
我找不到如何更改Visual Studio 2013 IDE中选项卡的字体颜色.
环境 - >字体和颜色没有任何允许这样做的东西.我看不到任何有用的东西.
我的问题是所选页面在相对较暗的背景上有粗体黑色字体,我不得不紧张眼睛看看选择了什么文件.
任何帮助,建议或扩展非常感谢.
我有一个MVC 5应用程序,其中包含许多库项目,使用我自己的导出模板创建.导出的模板一直正常工作.
我正在使用ASPNET标识.我只是使用相关NuGet包中提供的Microsoft Aspnet Identity Sample的副本,我已编织到导出的模板中.这一直很好.
我没有触及ASPNET Identity 2示例中提供的文件.
IdentityConfig.cs文件中发生错误.
出于某种原因,它开始出现一个错误,指出它无法加载System.Web.Mvc的文件,因为它找不到版本5.1.0.0.
因此,我使用NuGet更新了Microsoft.Aspnet.Mvc包.这安装了5.2.2.0版本的system.web.mvc,这有效地清除了该错误.
然而...
虽然应用程序加载,但每当我尝试登录或创建新用户时,都会出现一个新错误(如下所示),主要表明ASPNET Identity UserManager对象为null.
我更新了microsoft.aspnet.identity包,但是在尝试登录或创建新用户时仍然会出现错误(登录页面显示正常,但是当您单击登录按钮时会发生错误)
在获得有关system.web.mvc参考的错误之前,我可以在闲暇时登录并注册用户.
这是我尝试登录时显示的错误.当我尝试注册一个新用户时,我得到一个不同的错误,但原因相同:UserManager对象为null,不应该是.
Object reference not set to an instance of an object.
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.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
Line 324: public …
Run Code Online (Sandbox Code Playgroud) 我无法找到一种方法来保存我的解决方案资源管理器窗口(右键单击"基本"解决方案资源管理器窗口中的文件夹后使用"新解决方案资源管理器视图"打开).
这真的很烦人,因为当我使用mvc应用程序工作时,每次启动VS时,我都需要为区域,视图,我的解决方案中的各种其他项目等重新创建解决方案资源管理器窗口等.
该应用程序不是ba.com,但也不是meandmydog.com,因此解决方案中有很多文件和文件夹.
给定这个嵌套的布局结构:
~/Views/Shared/_layoutBase.cshtml ~/Views/Shared/_layout.cshtml
_layoutBase.cshtml
布局在哪里_layout.cshtml
.
布局文件中定义的任何部分都会在其下的页面中呈现其内容 ~/Views/...
但是,对于区域中的视图,从不渲染这些部分.
_layoutBase
:
<script type="text/javascript">
@RenderSection("footerScripts", false)
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
_layout.cshtml
:
@section footerScripts{
@RenderSection("footerScripts", false)
}
Run Code Online (Sandbox Code Playgroud)
"内容"观点:
@section footerScripts{
$(function () {
SetFocusOnForm("CaptchaCode", "NextButton");
});
}
Run Code Online (Sandbox Code Playgroud)
段的内容footerScripts
永远不会在区域的视图中呈现.它确实在~/Views
文件夹下的视图中呈现.
面积_ViewStart.cshtml
:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)
你能看到什么问题吗?!
razor ×3
asp.net-mvc ×2
c# ×1
find ×1
fonts ×1
html-helper ×1
inheritance ×1
interface ×1
jquery ×1
regex ×1
standards ×1