8

Kendo UI のエディターを使用しているので、大きな問題があります。

エディターから返されたアイテムをどのように表示するかわかりません。

エディターは次のように変換します。

<img src="someurl" />

に:

lt;p&gt;&lt;img src=&quot;someurl&quot;/&gt;&lt;/p&gt;

変換された文字列をデータベースに保持し、次のように表示してみます。

@Html.Raw(item.description)

ここで、description は kendo によって返される文字列です。

したがって、ビューに正しく表示する方法がわかりません

どんな助けでも大歓迎です。

4

4 に答える 4

12

と呼ばれるKendeUIエディターのオプションがありencoded、エディターがエンコードされたHTMLタグを送信するかどうかを構成します。

のデフォルト値encodedtrue

エンコードされていないテキストを保存したくない場合は、エディターを作成するときに次のスニプレットを使用してください。

$("#Editor").kendoEditor({
     encoded: false
 });

ただし、エンコードされたテキストをサーバーに送信していないため、Asp.net要求バリデーターが起動し、要求が中止されます。

強く型付けされたビューを使用している場合、できることはAllowHtmlAttributeモデルプロパティでを使用することです。

意見:

@model MyModel

@using(Html.BeginForm("SomeAction", "SomeController"))
{
     @Html.TextAreaFor(m => m.Editor)
     <input type="submit" value="Save" />
}

<script type="text/javascript">
   $(function(){
      $("#Editor").kendoEditor({
        encoded: false
      });
   });
</script>

モデル:

public class MyModel
{
    [AllowHtml]
    public string Editor { get; set; }
}

コントローラのアクション

public ActionResult SomeAction(MyModel myModel)
{
    //Save to db, etc.
}

また、web.configで次のように設定する必要があります。そうしないと、この属性は.NET4.0では有効になりません。

<httpRuntime requestValidationMode="2.0"/>
于 2012-06-21T08:06:33.700 に答える
6

それを行うより簡単な方法は、ビューとモデルではなく、コントローラーで変更を加えることです。そう:

意見

$("#Editor").kendoEditor();

モデル

public class MyModel
{
    public string Editor { get; set; }
}

コントローラ

Editor = Server.HtmlDecode(Editor);

Htmlデコード

于 2012-08-29T20:47:12.903 に答える
1

.NET ラッパーから生成されたエディター テンプレートが機能しなくなりました。これが修正です。

http://pknopf.com/blog/kendo-ui-editor-templates-for-asp-net

于 2012-09-09T01:43:51.067 に答える