首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Helpers In ASP.NET Core

@Helpers In ASP.NET Core
EN

Stack Overflow用户
提问于 2020-02-05 10:03:01
回答 1查看 34关注 0票数 0

我想在Razor helper内核中使用.net

我使用这个代码

代码语言:javascript
复制
@{
   void DrawRow(CategoryModel child, int parentNo)
    {
     @<text>
       <tr  style="display: none;">
        <td><span class="treegrid-indent"></span><span class="treegrid-expander"></span>@child.Name</td>
        </td>
       </tr>
      </text>;
     }
 }

但是当使用这个时,得到错误

"@“字符后面必须有":”、"(“)或C#标识符。如果要切换到标记,请使用HTML开始标记,

EN

回答 1

Stack Overflow用户

发布于 2020-02-12 09:20:09

您可以在视图组件核心应用程序中使用ASP.NET实现相同的需求,如下所示。

ViewComponent类

代码语言:javascript
复制
[ViewComponent(Name = "DrawRow")]
public class DrawRowComponent : ViewComponent
{
    public async Task<IViewComponentResult> InvokeAsync(DrawRowModel model)
    {
        return View(model);
    }
}

ViewComponent Razor视图

代码语言:javascript
复制
@model DrawRowModel

@*display: none;*@

<tr style="">
    <td>
        <span class="treegrid-indent"></span>
        <span class="treegrid-expander"></span>
        @Model.child.Name
    </td>
</tr>

模型类(Es)

代码语言:javascript
复制
public class CategoryModel
{
    public string Name { get; set; }
}

public class DrawRowModel
{
    public CategoryModel child { get; set; }
    public int parentNo { get; set; }
}

调用Test视图页面中的视图组件

代码语言:javascript
复制
@{
    ViewData["Title"] = "Test";


    var model = new DrawRowModel { child = new CategoryModel { Name = "Category" }, parentNo = 0 };
}

<h1>Test</h1>


@for (int i = 1; i < 6; i++)
{
    model.child.Name = "Category" + i.ToString();
    model.parentNo = i;
    <table>
        @await Component.InvokeAsync("DrawRow", model)
    </table>
}

测试结果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60073265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档