Для создания собственного метода EditorFor и получения значения свойства модели из него, вам следует сначала создать метод расширения для класса HtmlHelper. В данном методе вы можете получить значение свойства модели по его имени.
Пример реализации метода EditorFor с получением значения свойства модели:
1. Создайте класс с методами расширения для класса HtmlHelper:
```c#
using System;
using System.Linq.Expressions;
using System.Web.Mvc;
namespace YourNamespace
{
public static class CustomHtmlHelperExtensions
{
public static MvcHtmlString CustomEditorFor<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression)
{
var metaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
var value = metaData.Model;
// Далее вы можете использовать значение value и сделать с ним что-то нужное
return MvcHtmlString.Empty;
}
}
}
```
2. В представлении, где вы хотите использовать ваш метод CustomEditorFor, добавьте пространство имен вашего класса с методами расширения:
```c#
@using YourNamespace
```
3. Используйте ваш метод CustomEditorFor в представлении:
```c#
@Html.CustomEditorFor(model => model.PropertyName)
```
В результате выполнения этого кода в методе CustomEditorFor вы получите значение свойства модели и сможете выполнить с ним нужные действия.