2016-03-30 4 views
1

Не могли бы некоторые конвертировать следующий код в стандартный тег html? Что-то вроде <select id="selectDomain" name="selectDomain">, ЕСЛИ оно преобразуется в тег select.Html DropDownListFor asp.net C#

@Html.DropDownListFor(x => x.domain, Enumerable.Empty<SelectListItem>(), "", new { id = "selectDomain", name = "selectDomain"}) 

Если я правильно понимаю, не x => x.domainid="domain" name="domain" значит? Переписывает ли этот код name и id в selectDomain?

И, наконец, если он не конвертируется в тег html, я хочу добавить класс к данному коду. Я пытался добавить его в разделе new{} как new{id="selectDomain", name="selectDomain", class="form-control"}, но он дал мне ошибку говоря expected }

+2

Если вы хотите добавить атрибут класса, вам нужно будет использовать " @ 'перед классом, потому что класс является зарезервированным словом: 'new {id =" selectDomain ", name =" selectDomain ", @ class =" form-control "}' –

+3

Почему бы вам не запустить приложение и просмотреть исходный код в браузер? – ElConrado

+0

@ ElConrado ха-ха, я действительно такой тупой? на самом деле не имеет особого смысла со всеми атрибутами, но я получил его, спасибо: P –

ответ

2

Вы правильно понимаете, если вы пишете:

@Html.DropDownListFor(x => x.domain, Enumerable.Empty<SelectListItem>()) 

Бритва будет производить:

<select id="domain" name="domain"> </select> 

Это лучше использовать ViewModel и создать свойство selectDomain в нем, а затем:

@Html.DropDownListFor(x => x.selectDomain, Enumerable.Empty<SelectListItem>(), new { @class="form-control" }) 

Сделайте html, который вы хотите.

Но если вы не хотите, чтобы сделать это, Вы можете использовать Html.DropDownList помощник, как это:

@Html.DropDownList("selectDomain",Enumerable.Empty<SelectListItem>(), new { @class="form-control" }) 

нота спасся class с @ символом.

+2

Мне нравится подход с использованием viewmodel, он делает код более читаемым –

+1

@FedriQrueger yeap, это чистый способ MVC –

+0

У меня есть ViewModel с доменом как свойство –

1

Вы можете указать «имя» с заглавной первой буквой (работает MVC5)

@Html.DropDownListFor(x => x.domain, Enumerable.Empty<SelectListItem>(), "", new { id = "selectDomain", Name = "selectDomain"}) 

результат:

<select name="selectDomain" id="selectDomain"> 
+0

Никогда не делайте этого! Это гарантирует, что привязка модели не удастся. –

Смежные вопросы