gpt4 book ai didi

asp.net-mvc - 使用 Ajax.ActionLink() 进行优雅降级,无法使其工作,请检查我的语法。 (MVC3)

转载 作者:行者123 更新时间:2023-12-01 05:03:52 25 4
gpt4 key购买 nike

我已经通过 Url.Action 指定了用于异步请求的 Action 方法,但与为表单指定 ajax 选项并存储它们不同,即

 AjaxOptions ajaxOpts = new AjaxOptions {
UpdateTargetId = "tabledata",
Url = Url.Action("AppointmentData")
};

不仅仅是将此“ajaxOpts”传递到 Ajax.BeginForm() 中,我无法将 ajax 选项存储在变量中,然后将其传递到 Ajax.ActionLink 中。请参阅下面我尝试的语法:

@Ajax.ActionLink(cat.CATNAME, ajaxOpts, new { CatID = cat.CATID, count = Model.Count },
AjaxOptions ajaxOpts = new AjaxOptions
{
UpdateTargetId = "catlist-" + Model.Count,
Url = Url.Action("GetCats")

})

虽然像下面这样的东西在不尝试使用优雅降级的情况下当然可以正常工作,但是当 jscript 关闭时,它只会发出部分 View ,而不会发出页面的其余部分:

@Ajax.ActionLink(cat.CATNAME, "GetCats", new { CatID = cat.CATID, count = Model.Count },
new AjaxOptions
{
UpdateTargetId = "catlist-" + Model.Count,
})

这是可以理解的,当您不指定表单的 URL 而只是使用 AjaxOptions 作为参数并且关闭 jscript 时,表单将默认回发到呈现页面的 Action。但是 ActionLink 是否可以实现类似的功能呢?

最佳答案

这是因为您需要不同的操作和/或检查 Controller 操作方法的 AJAX 发布。当您打开 javascript 时,您正在请求部分 View 并告诉 javascript 使用该部分 View 更新哪个目标(div 或 span 或其他)。当 javascript 关闭时,听起来您仍然只返回部分 View ,而不是完整 View 。由于 javascript 已关闭,因此您不会更新 div - 只是自行渲染部分。

简而言之,当它不是 AJAX 请求(JS 关闭)时,您需要让操作方法返回完整 View ,因为如果没有打开 javascript,您将无法更新页面的一部分。

关于asp.net-mvc - 使用 Ajax.ActionLink() 进行优雅降级,无法使其工作,请检查我的语法。 (MVC3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7609250/

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