Я использую EF6 в своем проекте. Мне пришлось вернуть класс, содержащий два отдельных класса, на мой взгляд. Извините за использование неуниверсальных имен и использование жаргонных имен классов.
Модель, возвращенная мне, выглядит следующим образом:
public class Configuration
{
public List<ProductEntity> ProductCategories { get; set; }
public PricingConfigurationLog PricingConfiguration { get; set; }
}
Вот пример ввода с использованием синтаксиса Razor для поля формы.
Синтаксис Razor
@Html.EditorFor(model => model.PricingConfiguration.PromoText, new { htmlAttributes = new { @class = "form-control" } })
Вывод в формате HTML
<input class="form-control text-box single-line" id="PricingConfiguration_PromoText" name="PricingConfiguration.PromoText" type="text" value="Promotional Text">
При передаче элементов формы обратно в мой контроллер для их обработки EntityFramework для обновления/вставки в базу данных столбцы пусты.
Кажется, это очевидно из того, что имя формы элемента отображается как name="PricingConfiguration.PromoText
, а не PromoText
.
Здесь я не знаю, как изменить рендеринг или привязку ниже.
public ActionResult SaveConfiguration([Bind(Include = "ProductCode,"
+ "PromoText,"
+ "CartLimitPerDay,"
+ "CartDayAllowed,"
+ "SessionDeleteTimeMinutes,"
+ "SessionTimeoutMinutes")] PricingConfigurationLog PricingConfigurationLog)