gpt4 book ai didi

javascript - 页面未通过调用 RedirectToAction 刷新

转载 作者:行者123 更新时间:2023-11-28 18:40:13 25 4
gpt4 key购买 nike

View 中,我有一个链接按钮,并且有java脚本从 View 收集信息,然后发布到相应的操作“GroupDeny

@Html.ActionLink("Deny Selected", "GroupDeny", null, new { @class = "denySelectedLink" })

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")

<script type="text/javascript">

$(document).on('click', '.denySelectedLink', function (e) {
//Cancel original submission
e.preventDefault();

var identifiers = new Array();

//build the identifiers . . .

var jsonArg = JSON.stringify(identifiers);
$.post('/LicenseAssignment/GroupDeny?licensePermissionIdentifiers=' + encodeURIComponent(jsonArg));
});

</script>

然后在 Controller 中,GroupDeny将更新数据库,然后调用 RedirecToAction 来刷新 View

public class LicenseAssignmentController : Controller
{
[HttpPost]
public ActionResult GroupDeny(string licensePermissionIdentifiers)
{
// changes the DB

return RedirectToAction("Index");
}

// GET:
public async Task<ActionResult> Index()
{
var model = get data from DB

return View(model);
}

一切似乎都按预期进行,Index 将在执行 RedirectToAction("Index") 后被调用,并且模型会更新到我观看时的日期在调试过程中,唯一的问题是页面根本没有刷新,也就是说 View 仍然保持不变,但是当我手动刷新页面(按F5)后,数据将使用 DB< 中的值进行更新/p>

最佳答案

当我们不想想要离开页面时,我们会使用AJAX。您的 $.post() 是一个 AJAX 请求。

由于您想要导航,请在页面中添加一个表单

@using(Html.BeginForm("GroupDeny", "LicenseAssignment", FormMethod.Post))
{
<input type="hidden" value=""
name="licensePermissionIdentifiers"
id="licensePermissionIdentifiers" />
}

现在提交此表单将导航

$(document).on('click', '.denySelectedLink', function (e) {
e.preventDefault(); // prevent link navigation

var identifiers = new Array();

//build the identifiers . .

// populate the form values
$("#licensePermissionIdentifiers").val(identifiers);

$("form").submit();
});

RedirectToAction() 向浏览器返回一个 302 重定向LicenseAssignment/Index,然后您点击 Index 操作。

关于javascript - 页面未通过调用 RedirectToAction 刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36233080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com