值得一看
广告
彩虹云商城
广告

热门广告位

ASP.NET Core 中的视图组件如何创建?

视图组件用于封装UI逻辑并生成局部视图,适合复用场景。1. 创建继承ViewComponent的类,命名以ViewComponent结尾或加[ViewComponent]特性;2. 在Views/Shared/Components/{Name}/Default.cshtml创建对应视图;3. 在Razor视图中用@await Component.InvokeAsync(“Name”, args)调用;4. 支持异步方法InvokeAsync处理耗时操作。结构清晰,便于维护。

asp.net core 中的视图组件如何创建?

在 ASP.NET Core 中,视图组件(View Component)是一种可重用的组件,用于封装页面逻辑并生成部分视图内容。它类似于控制器,但更专注于 UI 片段,适合用在布局页、侧边栏、导航菜单等需要复用的地方。

1. 创建视图组件类

视图组件类通常继承自 ViewComponent,可以放在项目中的任意位置,但推荐放在 ViewComponents 文件夹中。

命名要求:类名以 “ViewComponent” 结尾,或使用 [ViewComponent] 特性标记。

// 示例:创建一个显示用户通知的视图组件

using Microsoft.AspNetCore.Mvc;
namespace MyWebApp.ViewComponents
{
public class NotificationViewComponent : ViewComponent
{
public IViewComponentResult Invoke(int maxNotifications = 5)
{
// 模拟数据
var notifications = new[]
{
new { Message = "你有一条新消息", Time = DateTime.Now.AddMinutes(-10) },
new { Message = "系统更新提醒", Time = DateTime.Now.AddMinutes(-30) }
};
return View(notifications.Take(maxNotifications));
}
}
}

2. 创建视图组件对应的视图文件

视图组件的视图文件应放在 Views/Shared/Components/{ViewComponentName}/Default.cshtmlViews/{Controller}/Components/{ViewComponentName}/Default.cshtml

其中 {ViewComponentName} 是去掉 “ViewComponent” 后缀后的类名(如 Notification)。

Bing图像创建器

Bing图像创建器

必应出品基于DALL·E的AI绘图工具

Bing图像创建器45

查看详情
Bing图像创建器

// 示例:Notification 视图文件路径

Views/Shared/Components/Notification/Default.cshtml

@model IEnumerable<dynamic>
<div class="notification-panel">
<h4>通知 <span class="badge">@Model.Count()</span></h4>
<ul>
@foreach (var item in Model)
{
<li>@item.Message (@item.Time.ToString("HH:mm"))</li>
}
</ul>
</div>

3. 在视图中调用视图组件

使用 Component.InvokeAsync 方法在 Razor 视图中异步调用视图组件。

@await Component.InvokeAsync("Notification", new { maxNotifications = 3 })

也可以使用同步方式(不推荐在生产环境使用):

@{ Component.Invoke("Notification", 3); }

4. 异步支持(可选)

如果需要执行异步操作(如数据库查询),可以使用 InvokeAsync 方法:

public async Task<IViewComponentResult> InvokeAsync(int maxNotifications)
{
var notifications = await _notificationService.GetRecentAsync(maxNotifications);
return View(notifications);
}

基本上就这些。创建视图组件就是写一个类、配一个视图、然后在页面上调用。结构清晰,复用方便,适合处理局部动态内容。

相关标签:

html app ai microsoft .net red 封装 继承 default 异步 数据库 ui

大家都在看:

动态生成HTML表单的asp.net方法代码示例
两种将.aspx转换为.html的方法
使用C#实现发送自定义的html格式邮件的代码案例
asp.net正则表达式删除指定的HTML标签的代码
Asp.net动态生成html页面的方法分享
温馨提示: 本文最后更新于2025-10-23 16:31:51,某些文章具有时效性,若有错误或已失效,请在下方留言或联系在线客服
文章版权声明 1 本网站名称: 创客网
2 本站永久网址:https://new.ie310.com
1 本文采用非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
2 本站所有内容仅供参考,分享出来是为了可以给大家提供新的思路。
3 互联网转载资源会有一些其他联系方式,请大家不要盲目相信,被骗本站概不负责!
4 本网站只做项目揭秘,无法一对一教学指导,每篇文章内都含项目全套的教程讲解,请仔细阅读。
5 本站分享的所有平台仅供展示,本站不对平台真实性负责,站长建议大家自己根据项目关键词自己选择平台。
6 因为文章发布时间和您阅读文章时间存在时间差,所以有些项目红利期可能已经过了,能不能赚钱需要自己判断。
7 本网站仅做资源分享,不做任何收益保障,创业公司上收费几百上千的项目我免费分享出来的,希望大家可以认真学习。
8 本站所有资料均来自互联网公开分享,并不代表本站立场,如不慎侵犯到您的版权利益,请联系79283999@qq.com删除。

本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容