javascript - 如何在 MVC 5 中更新模型
问题描述
我的 MVC 5 应用程序中有一个 Markdown 编辑器。代码如下:
<script type="text/javascript">
var executivesummary = new tui.Editor({
el: document.querySelector('#Recommendation'),
previewStyle: 'vertical'})
我有保存功能可以像这样保存编辑器的内容
function saveContent(e) {
var contents = Recommendation.GetValue();
console.log(content)
e.preventDefault();
}
我在模型中有一个带有获取和设置的字段,我想将此值“内容”更新为模型。这个怎么做?
解决方案
您需要调用控制器中的操作方法来更新模型。然后,您可以使用 Ajax(或使用 Ajax.BeginForm)重新加载视图(或其中的一部分)。
一些示例 ajax 调用:
$("#idToClickOn").click(function () {
var contents = @Html.Raw(Json.Encode(Recommendation.GetValue()));
$.ajax({
url: 'https://@(Request.Url.Host)/Controller/Action',
type: 'POST',
dataType: 'json',
data: contents,
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data);
}
error: function (data) {
alert("error: " + data);
}
});
});
Ajax.BeginForm 的一些例子:
@using (Ajax.BeginForm("Action", new { Controller = "ControllerName", area = "" }, new AjaxOptions() { OnSuccess = "onSuccessLogin", HttpMethod = "POST", UpdateTargetId = "idInViewToUpdate"}, new { id = "formID" }))
{
...
<div>
@Html.Partial("Path to form body")
</div>
<button class="btn btn-primary btn-block">Save</button>
}
您的控制器,例如:
[HttpPost]
[ValidateAntiForgeryToken]
[HandleError]
public ActionResult Action(YourModel model)
{
if (ModelState.IsValid)
{
do Something;
return PartialView("Path to your view");
}
else
{
return PartialView("Path to your view", model);
}
}
当然,YourModel 需要适合您创建的 json。
在该操作中,您可以修改模型并重新加载视图。
推荐阅读
- javascript - 如何使节点环境代码在在线网站上工作?
- python - 使用 Python 解析 Zoom 网络研讨会报告
- python - 错误:需要以下参数:-i/--image
- c - VSCode 扩展自动生成 C 文档字符串?
- node.js - node_modules/@types/lodash/common/array.d.ts(37,24) 中的错误:错误 TS1005:';' 预期的
- javascript - Python Selenium Webdriver - Python 脚本中的 Javascript .click() 集成
- php - Laravel 会话闪存
- java - 错误:- 不能从静态上下文 PermissionToken.continuePermissionRequest() 引用非静态方法 continuePermissionRequest();
- python - 如何为 Jira REST API 安装 Python 包
- java - 接口 Workbook 和类 WorkbookFactory 返回错误“无法解析为类型”