我有一个混合或缓慢移动到mvc的asp.net应用程序,但是当通过路由http://localhost:9490/razor
我得到Type 'ASP._Page_Views_diagnostics_razor_cshtml' does not inherit from 'System.Web.UI.Page'.
例外详细信息: System.Web.HttpException: Type 'ASP._Page_Views_diagnostics_razor_cshtml' does not inherit from 'System.Web.UI.Page'.
[HttpException (0x80004005): Type 'ASP._Page_Views_diagnostics_razor_cshtml' does not inherit from 'System.Web.UI.Page'.]
System.Web.UI.Util.CheckAssignableType(Type baseType, Type type) +8864436
System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) +75
System.Web.Routing.PageRouteHandler.GetHttpHandler(RequestContext requestContext) +138
System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +8911880
System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +86
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
几乎直接访问(没有.cshtml)
http://localhost:9490/views/diagnostics/razor
在我向项目添加视图或控制器文件夹之前发生了这种情况。之前它是Pages/Diagnostics/razor
routes.MapPageRoute(null, "razor", "~/Pages/Diagnostics/razor.cshtml");
配置的路线为routes.MapPageRoute(null, "razor", "~/Views/diagnostics/razor.cshtml");
工作正常。页面本身是单个变量访问之外的纯HTML,确认服务器端剃刀代码正在触发。
@{
Layout = null;
Page.Title = "Razor test";
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<p>Razor rendering success</p>
<p>
IsPost=@IsPost
</p>
</body>
</html>
答案 0 :(得分:0)
我可能会离开这里:)但是 - 为什么你在MVC应用程序中使用“MapPageRoute”,我相信它适用于Web表单应用程序。使用控制器,然后MapRoute到您的控制器,然后转到您的视图。视图文件夹中的任何内容都不能直接寻址,实际上你的web.config中有一个条目专门试图阻止这种情况。
答案 1 :(得分:0)
我建议使用WebPageRouteHandler,您可以通过NuGet系统获取。在回答Adam的评论时,您获得了更复杂的URL的能力路由,例如Backbone.js在访问RESTful服务器时使用的URL。为数据库中的每个可能的id创建一个单独的文件夹是荒谬的。您还可以以不同于网址结构的方式组织文件。