簡體   English   中英

如何在.aspx網頁上使用默認的siteLayout?

[英]How can I use my default siteLayout with my .aspx webpage?

我有一個默認的_siteLayout.cshtml文件,該文件的中心是@RenderBody() ,位於某些標記和Razor代碼之間。

我有一個復雜的.aspx頁面,該頁面上有一些標記,我希望在對@RenderBody()調用處進行渲染。

本質上,我想在一個新文件中進行這樣的調用:

@{  
    Layout = "/Shared/_SiteLayout.cshtml";
    @RenderPage(Default.aspx);
}

但是,在這種情況下,無法調用.aspx頁。

有什么簡單的解決方案嗎?

Default.aspx:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>


    <link href="fullcalendar/fullcalendar.css" rel="stylesheet" type="text/css" />
    <link href="Styles/dark-hive/jquery.ui.all.css" rel="stylesheet" type="text/css"  >
      <link href="Styles/jquery-ui-1.7.3.custom.css" rel="stylesheet" type="text/css" />
        <link rel='stylesheet' type='text/css' href='fullcalendar/fullcalendar.print.css' media='print' />

    <script src="jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
    <script src="jquery/jquery-ui-1.7.3.custom.min.js" type="text/javascript"></script>
    <script src="jquery/jquery.qtip-1.0.0-rc3.min.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
    </asp:ScriptManager>
    <div id="updatedialog" style="font: 70% 'Trebuchet MS', sans-serif; margin: 50px;"
        title="Update or Delete Event">
        <table cellpadding="0" class="style1">
            <tr>
                <td class="alignRight">
                    Name:</td>
                <td class="alignLeft">
                    <input id="eventName" type="text" /><br /></td>
            </tr>
            <tr>
                <td class="alignRight">
                    Description:</td>
                <td class="alignLeft">
                    <textarea id="eventDesc" cols="30" rows="3" ></textarea></td>
            </tr>
            <tr>
                <td class="alignRight">
                    Start Time:</td>
                <td class="alignLeft">
                    <span id="eventStart"></span></td>
            </tr>
            <tr>
                <td class="alignRight">
                    End Time: </td>
                <td class="alignLeft">
                    <span id="eventEnd"></span><input type="hidden" id="eventId" /></td>
            </tr>
        </table>
    </div>
    <div id="addDialog" style="font: 70% 'Trebuchet MS', sans-serif; margin: 50px;" title="Add Event">
    <table cellpadding="0" class="style1">
            <tr>
                <td class="alignRight">
                    Name:</td>
                <td class="alignLeft">
                    <input id="addEventName" type="text" size="50" /><br /></td>
            </tr>
            <tr>
                <td class="alignRight">
                    Description:</td>
                <td class="alignLeft">
                    <textarea id="addEventDesc" cols="30" rows="3" ></textarea></td>
            </tr>
            <tr>
                <td class="alignRight">
                    Start Time:</td>
                <td class="alignLeft">
                    <span id="addEventStartDate" ></span></td>
            </tr>
            <tr>
                <td class="alignRight">
                    End Time:</td>
                <td class="alignLeft">
                    <span id="addEventEndDate" ></span></td>
            </tr>
        </table>

    </div>
    <div runat="server" id="jsonDiv" />
    <input type="hidden" id="hdClient" runat="server" />
    </form>
</body>
</html>

您可以將要從此.aspx頁重用的部分外部化為.ascx部分,然后呈現它們:

@{  
    Layout = "/Shared/_SiteLayout.cshtml";
}
<div>
    @Html.Partial("foo.ascx")
</div>
some other contents

而且,如果您想將WebForms視圖與Razor布局一起使用,恐怕是不可能的。 但是可能存在相反的情況: 將Razor視圖與WebForms主頁一起使用

最簡單的解決方案-從局部視圖中的iFrame中呈現該頁面。 這是一種選擇,但在這種情況下通常是不良做法(請參閱: iframe是否被視為“不良做法”?

處理此問題的正確方法是將aspx分解為可以使用的模塊-正如Darin所回應的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM