Ajax.ActionLink 与 mvc 核心的替代方案

2023-11-27

在MVC5中有@Ajax.ActionLink这对于仅更新部分视图而不是重新加载整个视图很有用。显然在 MVC6 中不再支持。

我尝试过使用@Html.ActionLink如下所示,但它不会更新表单,它仅返回部分视图:

View:

@Html.ActionLink("Update", "GetEnvironment", "Environments", new { id = Model.Id }, new
       {
           data_ajax = "true",
           data_ajax_method = "GET",
           data_ajax_mode = "replace",
           data_ajax_update = "environment-container",
           @class = "btn btn-danger"
       }) 

control:

public async Task<ActionResult> GetEnvironment(int? id)
{

        var environments = await _context.Environments.SingleOrDefaultAsync(m => m.Id == id);
        return PartialView("_Environment",environments);
} 

部分视图:

@model PowerPhysics.Models.Environments
this is a partial view

然后我尝试使用 ViewComponents。当页面加载时,组件工作正常,但我不明白如何随后刷新组件(例如使用按钮):

View:

@Component.InvokeAsync("Environments", new { id = Model.Id }).Result

成分:

public class EnvironmentsViewComponent : ViewComponent
{
    public EnvironmentsViewComponent(PowerPhysics_DataContext context)
    {
        _context = context;
    }

    public async Task<IViewComponentResult> InvokeAsync(int? id)
    {
        var environments = await _context.Environments.SingleOrDefaultAsync(m => m.Id == id);

        return View(environments);
    }
}

如何使用 MVC6 中的部分视图仅更新视图的一部分?


您可以按如下方式使用标签:

 <a data-ajax="true"
                       data-ajax-loading="#loading"
                       data-ajax-mode="replace"
                       data-ajax-update="#editBid"
                       href='@Url.Action("_EditBid", "Bids", new { bidId = Model.BidId, bidType = Model.BidTypeName })'
                       class="TopIcons">Link
                        </a>

确保 _Layout.cshtml 页面的 body 标记末尾有以下脚本标记:

<script src="~/lib/jquery/jquery.unobtrusive-ajax/jquery.unobtrusive-ajax.js"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ajax.ActionLink 与 mvc 核心的替代方案 的相关文章

随机推荐

  • 在 C# 中使用动态创建的控件

    我正在创建一个应用程序 用户将在其中输入成绩 程序将输出加权平均值 加载时 它将询问作业的类别数量 然后程序将动态创建文本框供用户输入信息 问题是我无法弄清楚如何读取创建文本框后输入的文本 这是我的代码 TextBox txtbx new
  • 泛型类型推断失败?

    实施例A 研究以下片段 public class ExampleA static class Pair
  • android gridview中的分页[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 android gridview 可以分页吗 如果可用 您可以提供任何链接吗 对于水平分页 请在 ViewPager 中使用 GridView 这是一个教程
  • python Socket服务器与真实IP地址

    我正在使用我的 python 服务器 但我已经不再使用 localhost 我想通过互联网进行访问 到目前为止我的代码是 import socket import threading import socketserver class Th
  • Maven 可以生成 exe 文件和 mac os x 应用程序吗?

    假设您创建了一个小型 Java 桌面应用程序 其中包含一个 jar 和一些依赖项 可能还有一个许可证文本文件 我知道有很多 Ant 任务可以生成安装程序 可执行文件和正确的 Mac OS X 应用程序 包括将它们打包为 dmg 文件 例子是
  • 将静态 constexpr 类成员分配给运行时变量

    我知道有很多类似的问题 但又有些不同的问题 这是关于以下情况 include
  • 如何在 Linux 中轻松接收邮件并将其提供给 Rails?

    我整晚都在谷歌上搜索 postfix howto 但仍然不明白我如何在 linux 服务器上接收电子邮件 更具体地说 Ubuntu 我所需要的只是一个包罗万象的邮箱 它可以获取所有电子邮件并将它们提供给 ruby 脚本 当然 然后将其传递给
  • 在 Xamarin.Forms 中自定义进度栏外观

    I used Drawable自定义渲染ProgressBar in Android正如对这个问题但该解决方案不适用于 iOS Below is how it renders in Android Below is how it rende
  • WIX,Dot Net 管理的自定义操作,使用 SQL Server 实例动态填充组合框,MSI

    在 WIX 中 我需要一个点网管理的自定义代码来动态填充该网络中 sql server 实例的值的组合框 我尝试用谷歌搜索但没有任何效果 任何帮助是极大的赞赏 CustomAction public static ActionResult
  • 未找到 Gradle DSL 方法:“compile()”

    我有这个梯度错误 错误 9 0 未找到 Gradle DSL 方法 compile 我曾尝试参考类似的问题 但没有成功 Android gradle 构建错误 9 0 未找到 Gradle DSL 方法 compile 同步 Build G
  • 为什么在 C++0x 中没有为 std::weak_ptr 定义 std::hash ?

    在阅读了关于 std weak ptr 的 operator 编辑 关于 std weak ptr 的运算符http www open std org jtc1 sc22 wg21 docs papers 2004 n1590 html 我
  • AngularJS:如何监听 DOM 事件?

    我是 AngularJS 的新手 所以请原谅我这个转储问题 如何监听 dom 事件 例如 click 或 mousemove 这就是我得到的 没有错误 但控制台中也没有结果 代码基于原始的 angularjs seed angular mo
  • 超类访问检查失败:类 com.sun.javafx.sg.prism.web.NGWebView

    我刚刚安装了 SDK 11 并使用了 Maven 中的 Javafx 我的 pom 如下
  • 强制 CMake 使用静态库

    无耻地从 CMake 帮助列表中交叉发布 我正在尝试尽可能静态地创建二进制文件 我得到的 Fortran 代码有 X11 和quadmath 作为依赖项 并且我遇到了许多问题 也许每个问题都应该在不同的问题中 我的变量目前是 set CMA
  • 如何以编程方式更改屏幕保护程序?

    我想使用 C 将当前屏幕保护程序更改为自定义屏幕保护程序 我之前将其作为 Visual Studio 中的资源加载 怎么可能呢 我在谷歌和SO上寻找过它 但它都是关于 如何创建屏幕保护程序 而不是 如何更改屏幕保护程序 如果可能的话 它应该
  • 将 3x1 或 1x3 cv::Mat 转换为 cv::Point3d?

    我正在处理一些代码 其中执行大量 3x3 矩阵乘法 还使用旋转矩阵对 3d 点进行一些转换等 我决定使用 OpenCV 核心功能进行数学运算 使用最近添加到的构造函数的可能性cv Mat类来转换cv Point3d直接到 3x1cv Mat
  • Mongodb 模式,具有唯一值的字符串数组

    我正在为 mongo 文档创建模式 除了防止非对象数组中的重复之外 我可以做所有事情 我知道 addToSet 但我指的是 Mongo Schema 我不想使用 addToSet 检查更新 而是希望这是我的架构验证的一部分 下面的例子 le
  • 使用 MyBatis 将集合持久保存在对象中

    我有 POJO 课程 class Ticket private int id private double cost private Date time private List
  • 以编程方式更改 PowerShell 控制台字体

    我开发了一个使用 PowerShell 充当基于控制台的应用程序 例如 ncurses 的脚本 字体露西达控制台在脚本的快捷方式中配置 我想为用户提供更改字体大小的能力 以下模块就是这样做的 但是字体始终重置为 光栅字体 https 4sy
  • Ajax.ActionLink 与 mvc 核心的替代方案

    在MVC5中有 Ajax ActionLink这对于仅更新部分视图而不是重新加载整个视图很有用 显然在 MVC6 中不再支持 我尝试过使用 Html ActionLink如下所示 但它不会更新表单 它仅返回部分视图 View Html Ac