Asp.net core mvc ASP.NETCore3.1和全局视图方法

Asp.net core mvc ASP.NETCore3.1和全局视图方法,asp.net-core-mvc,partial-views,html-helper,Asp.net Core Mvc,Partial Views,Html Helper,代码@await Html.partialsync(“~/Views/Shared/_Toast.cshtml”,new ToastMessage(){Caption=“Hello”,Message=“World”})呈现带有参数的部分视图。它显示了一个Bootstrap toast消息,我打算在任何地方都使用它 现在是否可以将该行缩减为类似于@MyHelpers.showtostmessage(newtoastmessage(){Caption=“Hello”,Message=“World”}

代码
@await Html.partialsync(“~/Views/Shared/_Toast.cshtml”,new ToastMessage(){Caption=“Hello”,Message=“World”})
呈现带有参数的部分视图。它显示了一个Bootstrap toast消息,我打算在任何地方都使用它


现在是否可以将该行缩减为类似于
@MyHelpers.showtostmessage(newtoastmessage(){Caption=“Hello”,Message=“World”})
?我不想使用视图组件(过度使用)。此外,@functions块似乎仅限于本地。

您可以在应用程序中自定义htmlhelper

namespace App.Helpers
{
    public static class HtmlHelperExtensions
    {
        public static IHtmlContent ShowToastMessage(this IHtmlHelper htmlHelper, ToastMessage model)
        {
            string str = "<div> "+ model.Caption + " " + model.Message + " <div/>";            
            return new HtmlString(str);
        }
    }
}
如果您的
\u Toast.cshtml
包含其他html元素,则可以使用创建

@using App.Helpers


@await Html.PartialAsync("~/Views/Shared/_Toast.cshtml", new ToastMessage() { Caption = "Hello", Message = "World" })

@Html.ShowToastMessage(new ToastMessage() { Caption = "Hello", Message = "World" })