У меня есть следующий контроллер:
[HttpPost]
[ValidateInput(false)]
public ActionResult UpdateActivity(string HistoryId, string Review, string ActivityId)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myContext"].ToString());
SqlCommand cmd = new SqlCommand("UPDATE ActivityHistory SET Review= @Review WHERE HistoryId = @HistoryId", con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@HistoryId", HistoryId);
string editorContents = Request.Form["Review"];
cmd.Parameters.AddWithValue("@Review", editorContents.ToString());
con.Open();
int i = cmd.ExecuteNonQuery();
con.Close();
return RedirectToAction("Create", new { id = ActivityId });
}
public List<ActivityHistory> GetActivityHistory()
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myContext"].ToString());
List<ActivityHistory> model = new List<ActivityHistory>();
SqlCommand cmd = new SqlCommand("SELECT * FROM ActivityHistory", con);
cmd.CommandType = CommandType.Text;
SqlDataAdapter sd = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
con.Open();
sd.Fill(dt);
con.Close();
foreach (DataRow dr in dt.Rows)
{
model.Add(
new ActivityHistory
{
HistoryId = Convert.ToInt32(dr["HistoryId"]),
ActivityId = Convert.ToInt32(dr["ActivityId"]),
Review = Convert.ToString(dr["Review"])
});
}
return model;
}
public JsonResult EditRecord(int? id)
{
var model = GetActivityHistory().Find(x => x.HistoryId.Equals(id));
return Json(model, JsonRequestBehavior.AllowGet);
}
Тогда у меня есть следующее представление:
<table id="Table2" class="table">
<thead>
<tr>
<th style="display:none;">HistoryId</th>
<th style="display:none;">ActivityId</th>
<th>Review</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.ActivityHistoryList)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.HistoryId)</td>
<td>@Html.DisplayFor(modelItem => item.ActivityId)</td>
<td>@Html.DisplayFor(modelItem => item.Review)</td>
<td><a onclick="GetDetails(@item.HistoryId); return false;" href="">Review</a></td>
</tr>
}
</tbody>
</table>
<div class="modal-dialog modal-lg" role="document">
@using (Html.BeginForm("UpdateActivity", "ActivityHistories", FormMethod.Post))
{
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Review</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<div class="form-group">
<input type="hidden" id="hfId" name="HistoryId">
<input type="hidden" id="txtActivityId" name="ActivityId" />
<input type="text" class="form-control" id="txtReview" name="Review" placeholder="">
<script>
CKEDITOR.replace("txtReview", { htmlEncodeOutput: true });
</script>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Update</button>
</div>
</div>
}
</div>
<script>
CKEDITOR.replace("txtReview", { htmlEncodeOutput: true });
function GetDetails(id) {
$.ajax({
url: "/ActivityHistories/EditRecord/" + id,
type: "GET",
contentType: "application/json;charset=UTF-8",
dataType: "json",
success: function (response) {
$('#hfId').val(response.HistoryId);
$('#txtReview').val(response.Review);
$('#txtActivityId').val(response.ActivityId);
$('#modal-Update').modal('show');
},
error: function (response) {
alert(response.responseText);
}
});
return false;
}
</script>
---
Таким образом, сценарий, когда я нажимаю Review
ссылку, он покажет модальный. Внутри модального текста есть входной текст в формате CKEDITOR.
- Если не использовать CKEDITOR, он сохраняется в базе данных, когда я нажимаю кнопку Обновить на модальном, успех.
- Если используется CKEDITOR, он не сохраняется в базе данных, когда я нажимаю кнопку «Обновить» в модальном режиме. Кроме того, предыдущий обзор (если существует) не отображается на CKEDITOR. Если указан только тип ввода, он показан.
Мой вопрос:
1. Как сохранить текст на CKEDITOR и отправить его в базу данных таблицы?
2 Как я могу получить текст, если в базе данных таблицы существует Review
?
Действительно признателен.
Спасибо.