Asp.Net Core 中的@Html.Action

编程代码

1个回答

写回答

Luckcctt

2025-06-25 23:00

+ 关注

在Asp.Net Core中,我们经常需要在视图页面中嵌入其他动作(Action)的结果。这时,我们可以使用@Html.Action方法来实现这个功能。@Html.Action方法可以让我们在视图页面中调用其他控制器的动作,并将其结果直接嵌入到当前视图中。

使用@Html.Action方法的语法如下:

@Html.Action(string actionName, string controllerName, object routeValues)

其中,actionName参数是要调用的动作的名称,controllerName参数是要调用的控制器的名称,routeValues参数是传递给动作的路由参数。通过这些参数,我们可以精确地指定要调用的动作和控制器,以及传递给动作的参数。

下面是一个简单的示例,演示了如何在视图页面中使用@Html.Action方法:

csharp

// HomeController.cs

public class HomeController : Controller

{

public IActionResult Index()

{

return View();

}

public IActionResult GetTime()

{

ViewBag.CurrentTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

return PartialView("_Time");

}

}

// Index.cshtml

@{

ViewData["Title"] = "首页";

}

<h1>@ViewData["Title"]</h1>

欢迎访问首页!

当前时间:@Html.Action("GetTime", "Home")

// _Time.cshtml

<strong>@ViewBag.CurrentTime</strong>

在上面的示例中,我们首先在HomeController中定义了两个动作:Index和GetTime。Index动作返回首页视图,GetTime动作返回一个局部视图(_Time.cshtml),其中包含了当前时间。

在Index视图中,我们使用@Html.Action("GetTime", "Home")调用GetTime动作,并将其结果嵌入到当前视图中。这样,当我们访问首页时,就会在页面中显示当前时间。

在_Time.cshtml局部视图中,我们使用标签将当前时间加粗显示。

通过以上示例,我们可以看到,使用@Html.Action方法可以很方便地在视图页面中调用其他动作,并将其结果嵌入到当前视图中。这样,我们就可以实现视图之间的灵活组合和重用,提高开发效率。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号