3

我正在尝试在我的 ASP.NET MVC 应用程序中使用 Kendo UI Editor 控件。直到现在都没有成功,因为我无法将编辑器中的值返回到控制器中的模型。

我的模型非常简单(在我的网站上编辑一个 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 方法来填充模型。如果我为名称和标题添加简单的编辑器(在示例代码中它们被隐藏)它工作正常,但内容总是返回为空。

这是我的控制器方法:

[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 回答