3

ASP.NET MVC アプリケーションで Kendo UI Editor コントロールを使用しようとしています。エディターの値をコントローラーのモデルに戻すことができないため、今まで成功しませんでした。

私のモデルは非常に単純です (私の Web サイトで HTML ページを編集するため):

public class EditedPage
{
public string Name { get; set; }
public string Title { get; set; }

[AllowHtml]
public string Content { get; set; }
}

そして、私の見解には次のコードが含まれています:

@model Page

<h2>@Model.Title</h2>
@using (Html.BeginForm())
{
    @Html.HiddenFor(m => m.Name)
    @Html.HiddenFor(m => m.Title)

    @(Html.Kendo().EditorFor(m => m.Content)
    .Name("Editor")
    .HtmlAttributes(new { style = "width:800px;height:600px;margin-left:20px;" })
    )

    <div>
        <input type="submit" value="@Resources.StringResources.Save" class="k-button"/>
    </div>
}

コントローラーの post メソッドでモデルが満たされることを期待していました。Name と Title の単純なエディターを追加すると (サンプル コードでは非表示になっています)、正常に動作しますが、Content は常に null として返されます。

これが私のコントローラーメソッドです:

[HttpPost]
public ActionResult EditPage(Page page)
{
if (!ModelState.IsValid)
 return View(page);

//save content in a file

return View("CustomPages");
}

私は何が欠けていますか?エディターから値を取得するにはJavaScriptが必要だと思いますが、それを達成する方法がわかりません。

どんな助けでも大歓迎です。ありがとう

4

2 に答える 2

11

エディタに「コンテンツ」という名前を付けます。本当。:)

編集

@model Page

<h2>@Model.Title</h2>
@using (Html.BeginForm())
{
    @Html.HiddenFor(m => m.Name)
    @Html.HiddenFor(m => m.Title)

    @(Html.Kendo().EditorFor(m => m.Content)
    .Name("Content")
    .HtmlAttributes(new { style = "width:800px;height:600px;margin-left:20px;" })
    )

    <div>
        <input type="submit" value="@Resources.StringResources.Save" class="k-button"/>
    </div>
}
于 2013-01-18T19:49:59.750 に答える
2

私は同じ問題を抱えていましたが、 EditorFor を使用するときにこれを解決できる唯一の方法は、 Name プロパティをまったく設定しないことでした。

于 2013-05-13T16:34:34.363 に答える