C# 我可以使用.cshtml文件作为ASP.NET应用程序中的LoginURL吗?

C# 我可以使用.cshtml文件作为ASP.NET应用程序中的LoginURL吗?,c#,asp.net-mvc,razor,config,C#,Asp.net Mvc,Razor,Config,当我的Forms Authentication LoginURL是.ASP页面时,我的ASP.NET应用程序工作正常。然而,我的应用程序的其余部分在Razor中,我无法使布局与其他页面匹配。我尝试将其替换为CSHTML页面login.CSHTML,但在Visual Studio中出现以下错误: Warning 2 C:\Users\ddelgrande\Documents\Visual Studio 2010\Projects \ABMCEditAndReports\ABMCEditAndR

当我的Forms Authentication LoginURL是.ASP页面时,我的ASP.NET应用程序工作正常。然而,我的应用程序的其余部分在Razor中,我无法使布局与其他页面匹配。我尝试将其替换为CSHTML页面login.CSHTML,但在Visual Studio中出现以下错误:

Warning 2   C:\Users\ddelgrande\Documents\Visual Studio 2010\Projects
\ABMCEditAndReports\ABMCEditAndReports\RazorLogin.cshtml:
ASP.NET runtime error: The pre-application start initialization method Start
on type System.Web.WebPages.Deployment.PreApplicationStartCode threw an
exception with the following error message:
Exception has been thrown by the target of an invocation..
对于我在Visual Studio中打开的每个.CSHTML页面,该错误都会出现一次

以下是my web.config中的配置/AppSettings值:

<appSettings>
  <add key="webpages:Version" value="1.0.0.0"/>
  <add key="ClientValidationEnabled" value="true"/>
  <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
删除网页密钥并不能解决此问题

请注意,我使用的是MVC3


我想做的是可能的吗?如果可能的话,我该如何解决这个问题?

看起来您只需要在项目中引用ASP.NET网页,如果我读对了这篇博文,就可以将.cshtml文件用作常规页面

这给了您一个开始,但它说安装webmatrix argh

如果您已经安装了nuget,那么它似乎有一个nuget软件包


不过,不确定这是否适用于mvc3。Hrmmm。

据我所知,只要您的路由配置正确,cshtml就不重要。你的整个项目都是剃须刀吗?或者它是作为一个aspx项目启动的?而且尝试添加这个。到您的项目/Views/web.config,而不是根web.config。您建议的标记已在Views/web.config中。我试着把它改成‘value=true’,看看它是否能做些不同的事情,但没有。是的,除了登录页面之外,整个项目都是Razor/MVC。也许可以尝试从两个web.configs中完全删除密钥。或者,如果它不在您的主web配置中,请尝试将其添加到该配置中。我意识到这可能会很痛苦,但是如果您以ASPX应用程序的形式启动应用程序,然后切换到使用Razor CShtml,现在您希望在整个应用程序中使用Razor。您的最佳选择可能是启动一个新的MVC项目,并将代码转移到该项目中。在从aspx更改为基于razor的UI时,我看到了一些模糊的问题,通常是围绕配置文件和加载到GAC中的程序集。如果启动新应用程序是一个问题,请确保所有内容都具有适当的结构。虽然没有必要,但这可能有助于清理问题,确保相应的cshtml文件位于视图下的文件夹中,这些视图对应于它们正在使用的控制器。确保具有适当的dependentassembly标记和正确的部件版本。确保Views/web.config中的pages节点指向正确版本的System.web.Mvc。