大佬教程收集整理的这篇文章主要介绍了asp.net-mvc-3 – ASP.NET MVC 3将无法识别.cshtml视图文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
移植的应用程序正在使用.NET 4.
所有旧的位都有效,但是在vs 2012中创建的新视图中,视图引擎不是为视图寻找.cshtml文件.
例如,当用户在Solicitors区域中的Welcome控制器上请求索引操作时,url是:
@H_107_8@mysite.com/solicitors/welcome/gg(其中gg是用户名).在这种情况下,出现的错误是:
我已经在web.config中添加了以下密钥给appsetTings,但没有任何区别.
<add key="webpages:Version" value="1.0" />
编辑:
路线在SolictorAreaRegistration.cs:
context.MapRoute( "Solicitors_Welcome","Solicitors/Welcome/{nameUser}",new { controller = "Welcome",action = "Index",nameUser = UrlParameter.optional } );
编辑2:
使用RouteDebug,我可以看到找到正确的控制器和操作.
路线数据
关键价值
nameUser:gg
控制器:欢迎
动作:索引
数据令牌
关键价值
区域:律师
编辑3:
正确找到路由,从调试中可以看到:索引操作被击中.
当调用该行调用视图时,会发生此问题:
namespace MyApp.Areas.Solicitors.Controllers { [Authorize] public partial class WelcomeController : Controller { // // GET: /Solicitors/Welcome/ public virtual ActionResult Index(String nameUser) { return View("Index",nameUser); } } }
问题:
问题是我的视图模型是字符串类型.在我的动作中,我传递一个字符串作为模型参数:
public virtual ActionResult Index(String nameUser) { return View("Index",nameUser); }
这将与Controller.View(…)的一个重载冲突:
View(String,String)
第二个参数期望布局文件的名称.当您这样做时,MVC会查找一个名称为字符串值的布局文件,例如:
“你好,世界,我是一个白痴,但如果你给我一个体面的错误信息,我可能可以修复这个错误.”
显然,具有该名称的布局文件不存在.也没有一个名为“gg”的布局文件(我的(测试)律师的用户名)).
解决方案:
解决方案很简单:
指定第二个参数是型号,而不是布局.
public virtual ActionResult Index(String nameUser) { return View("Index",model: nameUser); }
有用的文章:
要查看有关此问题的扩展讨论,请参阅以下文章:
MVC Gotcha: Beware when using your view’s model is a string
非常感谢heartysoft.com的启发.
以上是大佬教程为你收集整理的asp.net-mvc-3 – ASP.NET MVC 3将无法识别.cshtml视图文件全部内容,希望文章能够帮你解决asp.net-mvc-3 – ASP.NET MVC 3将无法识别.cshtml视图文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。