我有一个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 - 无效导航您要查找的资源 已被删除,名称已更改或暂时无法使用。
它没有点击'保存'动作方法。我怎样才能让它发挥作用?
由于
答案 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
}