我正在使用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页面的原因.
我不确定我做错了什么.请帮忙.
您不在ASP.net MVC中使用服务器端控件.
您使用HTML Helper方法:
<%= Html.TextBox("TextBox1") %>
Run Code Online (Sandbox Code Playgroud)
MVC不支持服务器端控件,因为MVC没有ViewState的概念.
编辑:
如果需要集成MVC和WebForms,则需要创建独立的Web表单页面.这些不是MVC应用程序中的"视图".然后,您可以通过在Global.asax中执行以下操作来创建到这些Web表单页面的路由:
public static void RegisterRoutes(RouteCollection routes) {
routes.MapPageRoute(
"WebFormProducts",
"/products/{category}",
"~/WebForms/Products.aspx"
);
}
Run Code Online (Sandbox Code Playgroud)
现在,当您转到/ products/drinks时,它实际上将转到位于WebForms文件夹中的Products.aspx页面.
您创建此Products.aspx文件与普通的webforms页面相同.这样做的缺点(如果没有任何改变)是你不能共享主页/布局页面,所以你必须复制任何布局并创建.master以使页面看起来相似.
| 归档时间: |
|
| 查看次数: |
9507 次 |
| 最近记录: |