質問

ASP.NET MVC 3に完全に機能するASCXエディターテンプレートがあり、Razorに変換しようとしました。

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

かみそり:

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

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

ASCXの名前を変更したので、ASP.NETがエディターテンプレートを選択しても衝突しません。CSHTML拡張機能でレイザーファイルを保存しました。しかし、ランタイムでは、このエラーが発生します。

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

私は何が間違っているのですか? Razor EditortemplatesはASP.NET MVCによって認識されていませんか?

役に立ちましたか?

解決

かみそりのビューは継承できません ViewUserControl。代わりに、カミソリビューのモデルを指定するだけです。

@model Inventory.Models.ProductCategory

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

他のヒント

ASP.NET MVC 3.0(System.Web.MVC 3.0アセンブリ)に対してコンパイルされていない可能性のあるTelerikコントロールの古いバージョンではないことを確認してください。また、あなたが従っていることを確認してください ドキュメントで説明されている指示 前提条件の手順。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top