Errore durante la creazione EditorTemplates a Razor
-
24-10-2019 - |
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?
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.