2014-04-24 5 views
1

ASP.NET MVC 5에서 사용자 정의 컨트롤을 만들려고합니다. 컨트롤 이름은 LoginUserControl.ascx이며 뷰의 공유 폴더에 저장됩니다. _Layout.cshtml에서 사용자 정의 컨트롤을 호출하려고하는데 오류가 발생합니까? 올바른 방법을 제안하십시오.ASP.NET MVC 5의 사용자 정의 컨트롤

의 .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> 

오류 :

The view at '~/Views/Shared/LoginUserWebControl.ascx' must derive from ViewPage, ViewPage, ViewUserControl, or ViewUserControl. Blockquote

+4

Webforms 컨트롤과 MVC를 혼합하는 것은 좋지 않습니다. –

+6

정말로 원하는 것은 사용자 정의 컨트롤이 아닌 PartialView를 만드는 것입니다. –

+0

PartialView를 사용해 보겠습니다. 감사합니다. –

답변

0

귀하의 LoginUserWebControl.ascx.cs은에서 파생한다 사용자보기 다음과 같이 제어하십시오.

partial class LoginUserWebControl : System.Web.Mvc.ViewUserControl 
{ 
    ... 
} 
관련 문제