asp.net-mvc-3 – ASP.NET MVC 3将无法识别.cshtml视图文件
我已经从2010年的vs2012移植了一个mvc 3应用程序.
移植的应用程序正在使用.NET 4. 所有旧的位都有效,但是在vs 2012中创建的新视图中,视图引擎不是为视图寻找.cshtml文件. 例如,当用户在Solicitors区域中的Welcome控制器上请求索引操作时,url是: 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 控制器:欢迎 动作:索引 数据令牌 关键价值 命名空间:System.String [] 区域:律师 UseNamespaceFallback:False 编辑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 – 什么时候Request.Form [“name”]为null并且当一
- ASP.NET DataTable与Json互转源码
- asp.net – ANT和WAR文件的.NET等价物?
- asp.net – 对绑定到自定义通用对象列表的GridView进行排序
- asp.net core 3.0 中使用 swagger
- asp.net – 无法使用PreSendRequestHeaders()覆盖IIS中的ht
- asp.net-mvc-3 – C#lock关键字,我想我用错了
- asp-classic – 动态增加数组大小
- asp.net-mvc – ActionExecutingContext – ActionParamete
- asp.net – IIS – 无法通过ip地址而不是本地主机访问页面
- asp.net – aspx页面中的选项卡
- ASP.NET MVC 3中DropDownListFor的不显眼验证问题
- asp.net – 如何阻止.net中的libwww-perl访问?
- asp.net-mvc – Nhibernate / MVC:在View中处理
- asp.net – GetHashCode在这里只是货物崇拜吗?
- asp.net-mvc-3 – 有没有办法使用字符串键访问.N
- asp.net – 性能监视器显示活动的4294967293个会
- asp.net – GridView BoundField打破长字符串
- asp.net-mvc – 为什么ASP.NET MVC 4与IList for
- asp.net-mvc-3 – 列模板kendo ui grid mvc动作链