我刚刚安装了MVC2,我有一个看起来像这样的视图
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Home.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Home</h2>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
控制器只是返回视图.但是当我运行页面时,我收到此错误:
System.InvalidOperationException:'〜/ Views/Page/home.aspx'中的视图必须从ViewPage,ViewPage,ViewUserControl或ViewUserControl派生.
当我决定是时候进行一些维护时,我有一个有效的MVC应用程序.我的观点都在SHARED目录下,我决定将它们移动到不同的目录中.
我实现了一个我在这里找到的CustomViewEngine:我 可以指定一个自定义位置来"搜索ASP.NET MVC中的视图"吗?
视图结构看起来像这样
Views
AppViews
OtherAppViews
...
Shared
...
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
The view at '~/Views/AppViews/SomeView.cshtml' must derive from ViewPage, ViewPage<TModel>, ViewUserControl, or ViewUserControl<TModel>.
我试图从继承@inherits System.Web.Mvc.WebViewPage(如下解释:该视图必须从WebViewPage派生,或WebViewPage <TModel的>),但我这样做时,我得到一个错误说我不能使用@inherits,并@model在同一时间.
我正在使用Visual Studio 2010开发MVC3应用程序.
我有一个aspx页面,我想通过控制器操作显示.
我将此操作添加到家庭控制器.
// GET: /Home/EmployeePortal
public ActionResult EmployeePortal()
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
这是aspx页面.
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>EmployeePortal</title>
</head>
<body>
<asp:TextBox ID="TextBox1" runat="server" />
<div>
This is employee portal
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我可以使用url导航到此页面: http:// localhost:3990/Home/EmployeePortal
问题是 - 当我在aspx页面上有一个或多个服务器端控件时,我在网站上收到此错误.很抱歉,在执行您的要求时发生了一个错误.
当我从页面注释掉服务器端控件时,它显示正常.
通过添加新视图菜单将aspx页面添加为应用程序的视图.
我需要一个集成到MVC应用程序的aspx页面,这就是我尝试使用这个aspx页面的原因.
我不确定我做错了什么.请帮忙.