将文本从Kendo Editor保存到数据库

时间:2017-05-09 13:49:56

标签: save kendo-editor

我有一个Kendo编辑器,定义如下:

@(Html.Kendo().Editor()
                    .Name("myEditor")
                    .Tag("div")
                    .Tools(tools => tools
                            .Clear()
                            .Bold()
                            .Italic()
                            .Underline()
                            .Strikethrough()
                            .JustifyCenter().JustifyFull().JustifyLeft().JustifyRight()
                            .CreateLink().Unlink().TableEditing().FontColor().BackColor())
                     .Value(@<text>
                                Hello Kendo Editor <some text with html tags here>
                        </text>)
                )

然后我有两个按钮只显示给管理员 - 保存和编辑,它们定义如下 -

<button type="button" id="btnedit">Edit</button>
 <input type="submit" name="btnSave"  id="btnSave" value="Save" class="btn btn-default" />

表格上还有其他两个提交按钮 -

<input type="submit" name="btnAgree"  id="btnAgree"  value="Agree" class="btn btn-primary" />
<input type="submit" name="btnDisagree" id="btnDisagree" value="Disagree" class="btn btn-default" />

表单使用BeginForm(“ActionMethod”,“Controller”,FormMethod.Post)处理提交Agree和Disagree按钮,如下所示 -

@using (Html.BeginForm("Index", "MyControllerName", FormMethod.Post))

现在我想要,当管理员用户进入并对编辑器文本进行更改并点击“保存”按钮时,我希望编辑器的文本保存在数据库中。我可以处理保存部分。我只想知道,如何从Kendo编辑器中获取文本并将文本值发送到控制器中的action方法。

我尝试了此线程中提供的解决方案 - http://www.telerik.com/forums/save-changes-to-and-print-content-of-editor-in-mvc

所以,在这里使用解决方案我添加了一个action方法,其字符串参数名称类似于编辑器名称,如下所示 -

public ActionResult Save(string myEditor) {

// TO DO: Save the text to the database

 }

当我运行我的应用程序并点击“保存”按钮时,我收到以下错误 -

  

HTTP错误404.0 - 无效导航您要查找的资源   已被删除,名称已更改或暂时无法使用。

它没有点击'保存'动作方法。我怎样才能让它发挥作用?

由于

2 个答案:

答案 0 :(得分:1)

我所做的是以下内容(对于迟到的回复已经很抱歉)

my $count = 0;
my $limit = 5;
for my $key ( sort {$hoh{$b}{aaaa}<=>$hoh{$a}{aaaa}) keys %hoh ) { 
    print "$key $hoh{$key}{'aaaa'} $hoh{$key}{'bbbb'}\n";  
    last if $count++ > $limit;
}

还要确保在执行此操作时将编辑器包装在表单中 如果您有更多问题,请联系

答案 1 :(得分:0)

您是否考虑过使用AJAX来电,以便发送myEditor的内容?

您需要将<input> type属性更改为button,这样才不会将其视为提交并挂钩onclick事件处理程序:

<input type="button" name="btnSave"  id="btnSave" value="Save" class="btn btn-default" onclick="save()" />

然后连接将处理您的AJAX调用的相关Javascript函数:

function save() {
    var enteredText = $("#myEditor").data("kendoEditor").value();
    alert(editor.value());
    $.ajax({
        type: 'post',
        dataType: 'json',
        url: 'yourController\Save',
        data: { "myEditor": JSON.stringify(enteredText) },
        success: function (response) {
            // handle a response following database operations
        },
    });
}); 

并且不要忘记使用相关的请求方法(在这种情况下为POST)来装饰您的控制器方法:

[HttpPost]
public ActionResult Save(string myEditor) {
    // TO DO: Save the text to the database
}