javascript - 尝试将数据加载到新 View 中

标签 javascript jquery asp.net asp.net-mvc

我在尝试在页面上创建数据“克隆”时遇到问题。简而言之,我有一个创建客户作业屏幕和一个单独的管理客户作业屏幕。这些都工作得很好。我需要“克隆”现有的客户工作数据以创建一组新的类似工作。所以在我的管理屏幕中,我有一个克隆按钮。我希望它进入我的“创建”页面,其中的数据预先填充了原始数据,减去一两个相关的识别信息,例如职位名称。

我的问题是,我似乎无法使用 View 模型中的新数据将帖子重定向到“创建”页面。我无法进行提交操作,因为这会保存数据;我正在克隆的数据不会在管理和创建屏幕之间保留。

这是我所在的位置:

在我的 CSHTML 中:

  <button type="button" name="btnClone" value="btnClone" id="btnClone" formaction="CloneJob" class="btn btn-primary" style="width: 150px;">Clone</button>

这会触发一个点击事件来获取当前的 jobId,然后触发此函数:

function CloneJob(jobId) {
$.post('CloneJob', { JobId: jobId }, function (data) {
    window.document(data);
});

}

在我的 Controller 中,我有这个:

[HttpPost]
public ActionResult CloneJob(Guid jobId) {
   // logic which wipes off the old data job from the view model
   // eg names, ids, etc. but leaves the actual job details intact

return View("CreateJob", manageJobViewModel);

从中,我可以看到 IE/Chrome 调试网络部分返回的 HTML,但它不会转到填充了数据的 CreateJob View 。

我错过了什么?

最佳答案

首先,如果您要替换整个选项卡/窗口内容,请不要使用 AJAX。没有任何意义,只是需要额外维护一些东西。请改用标准链接。其次,只有当事情发生变化时才应该进行 POST。这里应该只是一个简单的 GET 请求。

创建指向“创建”URL 的链接并传递正在克隆的作业的 ID。然后,在创建操作中,您可以根据该 ID 从数据库中查找该作业,用数据填充您的 View 模型,然后将其与 View 一起返回。

如果您想要按钮的外观,您可以将链接样式设置为看起来像按钮,但您应该使用标准的旧 <a>标签,因为这就是这里的语义。

关于javascript - 尝试将数据加载到新 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39961487/

相关文章:

javascript - 寻找第 n 个素数 javascript

javascript - 如何构建一个 JavaScript 库?

javascript - 当用户尝试离开页面时,有没有办法编写一些 JavaScript 功能?

javascript - Vue Js如何在单文件模板中使用mixins?

javascript - jQuery getJSON 在对话框关闭之前没有足够的时间执行

jQuery 类选择器和 $(this)

c# - MSBuild 未处理的异常 : The FileName property should not be a directory unless UseShellExecute is set

javascript - 在移动到另一个表单之前检查是否有未保存的表单

javascript - 如何将 ASP.NET 应用程序部署到我的服务器

javascript - ajax 成功后循环 JSON 响应