【问题标题】:User Control in ASP.NET MVC 5ASP.NET MVC 5 中的用户控件
【发布时间】:2014-06-09 20:09:25
【问题描述】:

我正在尝试在 ASP.NET MVC 5 中创建用户控件。控件名称为 LoginUserControl.ascx,并保存在 Views 下的 Shared 文件夹中。我试图在 _Layout.cshtml 中调用用户控件,但它给出了错误?请提出正确的方法。

.ASCX 代码:

    <%@ Control Language="C#" 
    AutoEventWireup="true"
    CodeBehind="LoginUserWebControl.ascx.cs" 
    Inherits="TestApp.Views.Shared.LoginUserWebControl" %>

<%
    if (Request.IsAuthenticated) {
%>
        Welcome <b><%: Page.User.Identity.Name %></b>!
        @Html.ActionLink("Log Off", "LogOff", "Account") 
<%
    }
    else {
%> 
        @Html.ActionLink("Log On", "LogOn", "Account") 
<%
    }
%>

在Layout.cshtml中添加

<div class="navbar-collapse collapse">
    <ul class="nav navbar-nav">
       <li>@Html.ActionLink("Home", "Index", "Home")</li>
       <li>@Html.ActionLink("About", "About", "Home")</li>
       <li>@Html.ActionLink("Contact", "Contact", "Home")</li>   
       <li>@Html.Partial("LoginUserWebControl")</li>                
     </ul>

错误:

'~/Views/Shared/LoginUserWebControl.ascx' 处的视图必须派生自 ViewPage、ViewPage、ViewUserControl 或 查看用户控件。 块引用

【问题讨论】:

  • 混合使用 Webforms 控件和 MVC 是个坏主意。
  • 您真正想要的是创建 PartialView,而不是用户控件。
  • 我将尝试使用 PartialView。谢谢
  • 我们能否在 MVC 5 中创建用户控件并将其添加到任何视图页面。任何例子

标签: c# html asp.net asp.net-mvc web


【解决方案1】:

您的 LoginUserWebControl.ascx.cs 必须从 ViewUserControl 派生,如下所示:

partial class LoginUserWebControl : System.Web.Mvc.ViewUserControl
{
    ...
}

【讨论】:

    猜你喜欢
    • 2010-11-28
    • 2010-09-06
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多