Frage

Ich habe eine perfekt funktionierende ASCX -Editor -Vorlage in ASP.NET MVC 3 und versuchte, sie in Rasiermesser umzuwandeln:

ASCX:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Inventory.Models.ProductCategory>" %>

<%= Html.Telerik().DropDownList()
    .Name("ProductCategory")
        .BindTo(new SelectList((IEnumerable)ViewData["ProductCategories"], "Id", "Name"))
%>

Rasierer:

@inherits  System.Web.Mvc.ViewUserControl<Inventory.Models.ProductCategory>

@(Html.Telerik().DropDownList()
    .Name("ProductCategory")
        .BindTo(new SelectList((IEnumerable)ViewData["ProductCategories"], "Id", "Name"))
)

Ich habe in den ASCX umbenannt, damit sie nicht aufeinander abgestimmt ist, wenn ASP.NET die Editor -Vorlage auswählt. Ich habe die Razor -Datei mit einer CSHTML -Erweiterung gespeichert. Aber in der Laufzeit erhalte ich diesen Fehler:

CS0115: 'ASP._Page_Views_Shared_EditorTemplates_ProductCategory_cshtml.Execute()': no suitable method found to override

Line 44:         }
Line 45:         
Line 46:         public override void Execute() {
Line 47: 
Line 48: WriteLiteral("\r\n");

Was mache ich falsch? Sind Razor -Editoremplatten nicht von ASP.NET MVC erkannt?

War es hilfreich?

Lösung

Rasiermesseransichten können nicht erben ViewUserControl. Stattdessen möchten Sie nur das Modell Ihrer Rasieransicht angeben:

@model Inventory.Models.ProductCategory

@(Html.Telerik().DropDownList()
      .Name("ProductCategory")
      .BindTo(new SelectList((IEnumerable)ViewData["ProductCategories"], "Id", "Name"))   ) 

Andere Tipps

Stellen Sie sicher, dass Sie keine alte Version der Telerik -Steuerelemente sind, die möglicherweise nicht gegen ASP.NET MVC 3.0 (System.Web.MVC 3.0 Assembly) zusammengestellt werden. Stellen Sie außerdem sicher, dass Sie dem gefolgt sind Anweisungen in der Dokumentation beschrieben Für die Voraussetzungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top