由于这似乎是一个非常基本的编辑,我只需将标题放在 Div 中,然后在鼠标悬停时使用 CSS/jQuery 显示 edit button (glyphicon glyphicon-pencil)。单击时将 Div 设置为 Editable(使用样式显示它处于编辑模式,并且仅使用保存按钮退出编辑模式)。保存时,执行 jQuery Ajax 调用以更新数据库中的值。
请格外小心不要有任何SQL Injection Attacks,因为可编辑的内容可能包含来自用户的任何内容。
CSS 可能看起来像:
.editor editor-display button
{
display: none;
}
.editor editor-display:hover .edit-button
{
display: inline-block;
}
.editor editor-edit .edit-button
{
display: none;
}
.editor editor-edit .save-button
{
display: inline-block;
}
HTML 可能看起来像:
<div class="my-entity editor editor-display" data-id="5" >
<div class="edit-content">@model.Caption</div>
<button id="edit-caption-button" class="edit-button" />
<button id="save-caption-button" class="save-button" />
<div>
Javascript 可能看起来像:
$(document).ready(function()
{
$("#save-caption-button").on("click", function()
{
$(this).parent("editor").removeClass("editor-display").addClass("editor-edit");
});
$("#save-caption-button").on("click", function()
{
$.ajax({
url: "/MyEditity/UpdateCaption",
data: { id: $(this).parent(".my-entity").data("id"),
caption: $(this).parent(".my-entity").find(".edit-content").first().text() };
});
$(this).parent("editor").removeClass("editor-edit").addClass("editor-display");
});
});
控制器:
public ActionResult UpdateCaption(int id, string caption)
{
// lookup entity by id
// change caption value
// save
return new EmptyResult();
}
这是一个超级基本(未经测试!)示例,没有异常处理。