使用 Aspx 页面作为剃刀视图的局部视图

Posted

技术标签:

【中文标题】使用 Aspx 页面作为剃刀视图的局部视图【英文标题】:Using Aspx page as a partial view into a razor view 【发布时间】:2012-04-02 07:29:35 【问题描述】:

在我的 Asp.Net MVC3 项目中,我有一个称为 Razor 视图的局部视图的 asp 页面。 在 Aspx 页面中,我有一个按钮,它必须触发在脚本部分中实现的事件。 这是代码:

<%@ Page Language="C#" AutoEventWireup="true"  %>

<head>
<script runat="server" language="CS">

    public void Page_Load(object sender, EventArgs e)
    
       //
        //Instructions
        //
      

    

    public void Button2_Click(object sender, EventArgs e)
    
        //
        //Instructions
        //
    
</script>
</head>

<form id="frep" runat="server">

    <asp:Button ID="Button2" runat="server" Text="Button" ></asp:Button>

</form>

现在,我的问题是当我单击按钮时按钮事件不会触发(相反,当我刷新页面时会触发 Page_Load 事件)。我尝试了几种解决方案,但都没有解决。

【问题讨论】:

【参考方案1】:

您永远不会将Button2Button2_Click 联系起来。您需要在按钮中添加OnClick="Button2_Click"

您还应该从脚本周围删除那些 &lt;head&gt; 标记 - 部分视图不能有 &lt;head&gt; 标记,并且 runat 服务器代码也不需要在其中。

【讨论】:

你说得对,在这段代码中我忘了放置 OnClick 属性,但在我的代码中它存在(OnClick="Button2_Click"),但问题仍然存在。据我所知,head 标签不会影响任何东西(我删除了它,没有任何改变)。

以上是关于使用 Aspx 页面作为剃刀视图的局部视图的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 3.1 - 将子项添加到剃刀局部视图

在混合 MVC3 项目中,剃刀视图优先于 aspx

从局部视图中对控制器的 AJAX 调用

MVC的局部视图

安全修剪菜单作为局部视图

使用 ajax 渲染局部视图