【发布时间】:2016-05-11 12:06:08
【问题描述】:
我在项目的views>主目录中创建了三个aspx网页,路径分别为~/Home/Enter、~/Home/List和~/Home/Search。我可以在 Visual Studio 的属性窗口以及解决方案资源管理器中看到路径是正确的。但是,每当我单击网站上这些页面的链接时,我都会收到一条错误消息,指出“ '~/Views/Home/Enter.aspx' 处的视图必须派生自 ViewPage、ViewPage、ViewUserControl 或 ViewUserControl。"
我已经上传了下面错误的截图。
HomeController.CS 代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace GolfScores.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
public ActionResult Search()
{
return View();
}
public ActionResult Enter()
{
return View();
}
public ActionResult List()
{
return View();
}
}
}
【问题讨论】:
-
显示你的控制器方法。
HomeController中有Search()方法吗? -
刚刚添加到原代码中。我添加了一个,但错误仍然存在
-
您的
@Html.ActionLink("Search", "Search", "Home")可以正常工作。但是“Enter”链接不会,因为它需要是"Enter",而不是"Enter.aspx") -
更改 Enter.aspx 以使 mvc 应用程序可以找到这些页面,但现在我遇到了一个新错误。我正在更新原始帖子以反映这一点
-
您是如何生成这些视图的?您拥有文件
Enter.aspx.cs和Enter.aspx.designer.cs的事实表明有些奇怪。要创建视图,请右键单击方法,单击“添加视图”并选择“ASPX”作为视图引擎。它将使用<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>生成正确的视图代码(但你为什么要混合aspx和cshtml` 视图呢?)
标签: c# asp.net asp.net-mvc