Domanda

Ho un editor di modelli ascx perfettamente funzionante in ASP.NET MVC 3, e ha cercato di convertirlo in un rasoio:

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"))
%>

Razor:

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

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

I ribattezzato ascx in modo che non si scontrerebbe quando ASP.NET è scegliere il modello di editore, ho salvato il file con estensione rasoio cshtml, tutto questo. Ma in fase di esecuzione, ottengo questo errore:

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");

Che cosa sto facendo di sbagliato? non sono Razor EditorTemplates riconosciuto da ASP.NET MVC?

È stato utile?

Soluzione

viste Rasoio non possono ereditare da ViewUserControl. Invece si vuole specificare solo il modello della visualizzazione Razor:

@model Inventory.Models.ProductCategory

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

Altri suggerimenti

Assicurati di non siete una vecchia versione dei controlli Telerik che potrebbero non essere compilato con ASP.NET MVC 3.0 (3.0 System.Web.Mvc di montaggio). Inoltre, assicurarsi di aver seguito le istruzioni descritte nel documentazione per le operazioni preliminari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top