【发布时间】: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