.Net 8, Asp.Net Core, Razor C#
Пишу свой хелпер для серверных веб-форм (аналог @Html.EditorFor), что-то вроде этого:
public class FormHelper<TModel>(
IHtmlHelper<TModel> helper)
where TModel : class
{
private readonly IHtmlHelper<TModel> _helper = helper;
public HtmlString EditorFor<TResult>(
Expression<Func<TModel, TResult>> expression)
{
var name1 = expression.GetMemberAccess().Name;
// var value1 = ????
return new HtmlString($"<div>Name: '{name1}'</div>");
}
}
public static FormHelper<TModel> GetFormHelper<TModel>(
this IHtmlHelper<TModel> content)
where TModel : class
{
var helper1 = new FormHelper<TModel>(content);
return helper1;
}
Чтобы потом его можно было применить на форме примерно так:
@model MyUser
@{
var form1 = Html.GetFormHelper();
}
<form asp-action="Edit">
@form1.EditorFor(x => x.Name)
</form>
В функции EditorFor я получаю имя свойства модели (name1).
А как получить значение (value1) не могу понять?