ASP MVC: создание выражения <Func <TModel, TValue >> программно - PullRequest
0 голосов
/ 29 июня 2018

Я хочу сгенерировать MVC-редактор с функцией

System.Web.Mvc.Html.EditorExtensions.EditorFor<TModel, TValue>(
       this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, 
       object htmlAttributes = null)

Проблема в

Expression<Func<TModel, TValue>> expression

потому что у меня есть только название собственности. Я уверен, что свойство существует, и я могу получить фактический экземпляр модели.

Как мне создать правильный параметр?

Редактировать: Чтобы было понятнее: У меня есть модель, у меня есть имя свойства и я хочу создать выражение>.

Спасибо!

Питер

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Ответ Джонатана Барклая ведет меня по правильному пути!

Вместо html.Editor, теперь я использую html.Editor.

Вот извлечение из кода генератора-класса:

 public static MvcHtmlString GenerateStepTwo(this HtmlHelper<InputModell> html, InputModell modell)
    {
     ...
     foreach (var actField in fieldsSorted)
        {
        ...
        editor = html.Editor(fieldname, new { htmlAttributes = new { @class = "form-control", style = "max-width:200px;min-width:100px" } });

        all.AppendLine(AddOpenImageFunc(editor, fieldname));
...
}
return all;

Спасибо! Питер

0 голосов
/ 29 июня 2018

Если у вас есть имя свойства в виде строки, используйте метод расширения Editor вместо EditorFor.

, например

@Html.Editor("YourProperty", new { htmlAttributes = new { ..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...