【发布时间】:2017-03-17 11:00:16
【问题描述】:
我想把这个包装起来:
<textarea asp-for="@Model.Content" ...>
进入可重用的 ViewComponent,其中属性将是参数:
<vc:editor asp-for="@Model.Content" />
我能够将 asp-for 作为参数传递给视图组件:
public class EditorViewComponent : ViewComponent
{
public IViewComponentResult Invoke(ModelExpression aspFor = null)
{
//when debugging, aspFor has correct value
return View(aspFor);
}
}
但我无法从组件的角度评估它。这不起作用:
<!-- ViewComponents/Editor/Default.cshtml -->
@model Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression
<textarea asp-for="@Model" />
有什么想法吗?
【问题讨论】:
-
我认为你在混合
ViewComponents和TagHelpers。 docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components -
我只想将我的 textarea 包装到 viewcomponent 中,但我无法将 ModelExpression 传递到 textarea。您的回答仅显示了如何使用视图组件,但无助于将 ModelExpression 传递到视图组件内的文本区域。
-
使用不同的类作为您的优先级。喜欢modelExpression?或 func
-
??我不确定你是什么意思。什么优先级?我已经在使用 ModelExpress
-
*属性。啊,你可能需要重新编码这部分。或者扩展文本区域标签助手。无论如何,您可能想创建一个标签助手。
标签: c# asp.net-core asp.net-core-viewcomponent