之前我问过这个问题,但问题是我收到了一个回复,而且回复不是我问的问题。所以,为了清楚地说明这个问题并非如此:
我不想在同一个项目中使用HYBRID,MVC和Webforms!
有人能为我提供一个链接,显示两个项目与一个母版页并排运行吗?一个项目是ASP.Net Web窗体,包含母版页。另一个项目是MVC Razor项目。 Master页面将提供指向.aspx页面和.cshtml视图的链接。 这两个项目都应该是C#。我需要能够下载源代码,亲眼看看这一切是如何运作的。
答案#1不是我要找的答案。我的问题非常具体。
答案 0 :(得分:3)
据我所知,这有两个原因:
因此,似乎无法直接重新使用您现有的.master页面。
答案 1 :(得分:2)
由于这是两种不同的技术,您将无法使用相同的文件。您需要为WebForms应用程序提供MasterPage,并为MVC应用程序提供看起来相同的布局。
如果你的MasterPage / Layout没有动态内容而且它只是简单的html,我想你可以把它放在一个文件中并创建一个脚本,从中创建MasterPage和Layout文件,但我不认为它值得。
答案 2 :(得分:1)
我建议使用布局代替MVC Razor。
http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx
答案 3 :(得分:1)
我无法向您展示完整的消息来源。不是我的表现。但我可以告诉你这个。这是我们用于使用WebForm母版页渲染剃刀视图的部分内容。
--- --- razorview.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% Html.RenderPartial((string) ViewBag._ViewName); %>
</asp:Content>
<asp:Content ID="scriptContent" ContentPlaceHolderID="ScriptContent" runat="server">
</asp:Content>
--- ---使用
public ActionResult Create(int clientId)
{
....
return this.RazorView(choices);
---的Site.Master(删节)---
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<%@ Import Namespace="...." %>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<title>Some Alt</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link href="../../Site.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="ScriptContent" runat="server" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
</head>
<body>
<div class="page">
<div id="main">
<table width="100%">
<tr>
<td valign="top" width="150" height="50">
<img src="<%= Common.CompanyLogoPath%>" alt="Some Alt width="150"
height="50" />
</td>
<td align="left" width="630" height="50" class="mainheading">
Description
</td>
<td align="right" valign="bottom">
<%= DateTime.Now.FormatShortDate() %>
</td>
</tr>
<tr>
<td colspan="3">
<hr />
</td>
</tr>
<tr>
<td valign="top" class="rightBorder">
<table>
.....
</table>
</div>
</div>
</body>
</html>
答案 4 :(得分:1)
http://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx