彻底解决asp.net mvc5.2.2:vs2013 cshtml视图文件报错(当前上下文中不存在名称“model”,ViewBag,Url)...

最近遇到一个奇葩的问题,在vs2013下cshtml视图文件报错,出现当前上下文中不存在名称“model”,ViewBag,Url等等),在视图中也没有智能提示了,用@model声明视图的model类型也不可以,直接复制过去还会把model类给自动变成小写!!!。这个问题纠结了我一晚上。

网上出现的资料目前无非有以下几种方法(试了一下,都不管用):

1、检查项目根目录的web.config和Views文件下的web.config的mvcrazor版本信息是否一致。

2、重新新建一个mvc项目把对应正确的web.config拷贝过来。

3、安装vs2015(代价太大,不建议!)

4、用nuget重新安装一下ASP.NET MVC。

出现的错误如下:

错误 2 当前上下文中不存在名称“model” e:\Stuff\projects\蓝狐软件工作室\src\Lanhu.Admin\Views\Student\Index.cshtml 3 2 Lanhu.Admin

错误 7 “System.Web.WebPages.Html.HtmlHelper”不包含“BeginForm”的定义,并且找不到可接受类型为“System.Web.WebPages.Html.HtmlHelper”的第一个参数的扩展方法“BeginForm”(是否缺少 using 指令或程序集引用?) e:\Stuff\projects\蓝狐软件工作室\src\Lanhu.Admin\Views\Student\Index.cshtml 12 26 Lanhu.Admin

错误 9 当前上下文中不存在名称“ViewBag” e:\Stuff\projects\蓝狐软件工作室\src\Lanhu.Admin\Views\Student\Index.cshtml 16 115 Lanhu.Admin


错误 11 当前上下文中不存在名称“Url” e:\Stuff\projects\蓝狐软件工作室\src\Lanhu.Admin\Views\Student\Index.cshtml 48 47 Lanhu.Admin


错误 12 “System.Web.WebPages.Html.HtmlHelper”不包含“BeginForm”的定义,并且找不到可接受类型为“System.Web.WebPages.Html.HtmlHelper”的第一个参数的扩展方法“BeginForm”(是否缺少 using 指令或程序集引用?) e:\Stuff\projects\蓝狐软件工作室\src\Lanhu.Admin\Views\Student\Index.cshtml 49 50 Lanhu.Admin

如下图:

 

后来,我打开其他的项目,又正常。仔细对比了一下不报错的项目使用的ASP.NET MVC版本是5.0.0.0而现在报错是ASP.NET MVC5.2.2.0

这个报错的MVC5.2.2.0项目是从公司的电脑拷贝回来的(也是vs2013),这就奇怪了为什么会报错呢?智能提示也管用,虽然能够正常的运行,但是很不方便。于是我灵机一动,难道是vs版本的问题?

于是我对比了两者的vs版本。

自己家的vs版本如下:

 

公司的vs版本如下:

 

可以看到公司的vs2013是Update 4了,而家里的vs2013是REL版。这让我猜想可能是vs2013bug引起的,于是我试着把家里的vs版本也升级。

vs菜单“工具”=》“扩展和更新”

 

把vs2013更新下载到本地,然后安装。

 

勾选同意,点击安装

上面过程时间有点长,要等久一点,你可以现在泡一杯茶,坐等安装完成。

 

vs2013 update5安装完成之后,提示要重启电脑,然后重新打开vs2013,奇迹般的问题消失不了。

 

转载于:https://www.cnblogs.com/niyl/p/11251039.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常抱歉,我的错误。在 C# ,没有名为 `HilbertTransform` 的内置类。如果你想进行希尔伯特变换,可以使用其他第三方库或者自己实现算法。 以下是一个简单的示例,展示了如何手动实现希尔伯特变换: ```csharp using System; using System.Numerics; // 实现希尔伯特变换 public static class HilbertTransform { // 计算希尔伯特变换 public static Complex[] Hilbert(double[] input) { int N = input.Length; Complex[] output = new Complex[N]; // 使用快速傅里叶变换(FFT)计算离散傅里叶变换(DFT) Complex[] fft = new Complex[N]; for (int i = 0; i < N; i++) { fft[i] = new Complex(input[i], 0); } Fourier.Forward(fft, FourierOptions.NoScaling); // 构建希尔伯特变换的频谱 for (int i = 1; i <= N / 2; i++) { fft[i] = Complex.ImaginaryOne * fft[i]; fft[N - i] = Complex.ImaginaryOne * fft[N - i]; } // 使用逆傅里叶变换(IFFT)计算希尔伯特变换后的信号 Fourier.Inverse(fft, FourierOptions.NoScaling); for (int i = 0; i < N; i++) { output[i] = fft[i]; } return output; } } // 示例用法 class Program { static void Main(string[] args) { // 定义实数信号 double[] signal = { 1, 2, 3, 4, 5 }; // 进行希尔伯特变换 Complex[] transformedSignal = HilbertTransform.Hilbert(signal); // 输出变换后的复数信号 foreach (Complex c in transformedSignal) { Console.WriteLine(c); } } } ``` 这段代码手动实现了希尔伯特变换的计算过程。你可以根据自己的需求进行调整和扩展。希望这能帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值