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 – 尝试访问工作网页时出错
- ASP.NET MVC 3:添加控制器时自动生成视图(无实体框架)
- asp.net-mvc – 使ASP.NET MVC应用程序Web Farm准备就绪
- asp.net – MSCharts“没有找到HTTP请求类型”GET“错误的处
- asp.net – 为什么%=%在一种情况下工作,但在另一种情况下
- asp.net – 如何在gridview中只显示日期而不是datetime?
- asp.net-mvc – Visual Studio不允许在MVC视图中使用断点
- 为什么asp.net OnTextChanged不工作
- asp.net-mvc – SSL握手问题? (当时:网页挂起,只清除浏览
- asp.net-mvc – ASP.NET MVC AcceptVerbs和注册路由
- asp.net-mvc – 如何使用MVC 4上传大文件?
- asp.net – 如何在捕获httpwebrequest超时后关闭
- 如何使用Castle Windsor与ASP.Net Web表单?
- asp.net-mvc-4 – 如何在SPA HotTowel模板中设置
- asp.net-mvc-4 – SimpleMembershipInitializer不
- asp.net核心 – ASP.Net MVC 6中使用Tag Helpers
- asp.net – 如何忽略正则表达式的情况?
- asp.net-mvc – 剃刀替换的优点(@href)
- 全局导入/使用.NET中的别名
- asp.net-mvc – 带有存储库和ninject的ASP.NET M
