Я разрабатываю многоязычное веб-приложение с ASP.NET MVC. Но некоторые языки будут необязательными. Например, пользователи видят два текстовых поля на экране. Один из них для английского и другого для французского. Я хочу динамически создавать текстовые поля с помощью web.config. Если «ActiveLanguageList» в web.config имеет код языка, чтобы приложение создало текстовое поле для этого языка. Но я не могу создать его динамически из моей модели представления. Я должен написать HTML-помощник вручную. Я хочу создать их динамически с помощью цикла или т. Д. ... Потому что одна другая вещь - код страны на странице HTML. Например, «ContentNameEn», «ContentNameFr» Спасибо за ваши предложения.Динамически генерировать представление по Web.Config Параметр
//in my setting class
var ActiveLangs = new List<string>(); //For example EN,FR
//in web.config
<add key="Languages" value="EN,FR"/>
//in my view model
[DisplayName("English Content Name")]
public string ContentNameEn { get; set; }
[DisplayName("French Content Name")]
public string ContentNameFr { get; set; }
//in myview
<div class="form-group">
<label class="control-label col-md-2" for="ContentName">Content Name(EN)</label>
<div class="col-md-4">
@Html.TextBoxFor(model => model.ContentNameEn, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.ContentNameEn)
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2" for="ContentName">Content Name(FR)</label>
<div class="col-md-4">
@Html.TextBoxFor(model => model.ContentNameFr, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.ContentNameFr)
</div>
</div>
//i want to code in the view like this but i can't
@foreach(var langCode in ActiveLangs){
//i need here create langCode's html code with htmlhelper
//@Html.TextBoxFor
//@Html.LabelFor
}
Вы говорите, у вас всегда есть текстовое поле для '' ContentNameEn' и ContentNameFr' но то у вас могут быть другие, например, на немецком, испанском и т. д.? –
Я имею в виду это. Требуется один язык. Но другие languges могут быть необязательными. Если ActiveLangs имеет «EN, FR, GR», имеется текстовое поле три. если у него один язык, есть одно текстовое поле. если у него 10 языков, поэтому мне нужно 10 текстовых полей. ContentNameEn, ContentNameFr, ContentNameSpa, ContentNameGer и т. Д. – Yargicx
Тогда вам действительно нужна модель представления, чтобы представить это, чтобы вы могли получить привязку с двумя способами - она будет содержать свойства 'string LanguageCode' и' string ContentName', а затем вы создаете сбор модели просмотра для использования в представлении и использование цикла 'for' для создания элементов управления (включая скрытый ввод для кода языка) –