Как я могу получить выбранное значение из выпадающего списка из файла бритвы в ASP. NET Core MVC - PullRequest
0 голосов
/ 07 февраля 2020

Допустим, у меня есть представление Foo.cs html, например:

<form method="post" action="/">
  <select id="Country" name="Country">
    <option value="MX">Mexico</option>
    <option value="CA">Canada</option>
    <option value="US">USA</option>
  </select>

  <button type="submit">Register</button>
</form>

@{
  string selectedValue = ???;
  string selectedText = ???;
}

Как я мог go об инициализации этих строк?

Ответы [ 3 ]

3 голосов
/ 07 февраля 2020

Я думаю, что в вашем коде есть неправильное понимание на стороне сервера и на стороне клиента.
Строки ниже отображаются и перефразируются сервером.

@{
  string selectedValue = ???;
  string selectedText = ???;
} 

Это означает, что когда оно достигло браузера, оно выполнено и невозможно изменить

Если вы хотите, чтобы в раскрывающемся списке было выбрано значение, вы должны использовать javascript, чтобы получить то, что вы хотите, а не язык сервера

вы можете использовать javascript

var e = document.getElementById("Country");
var value= e.options[e.selectedIndex].value;
var text= e.options[e.selectedIndex].text;

или получите через jquery

$('#Country :selected').text();
$('#Country :selected').val();
2 голосов
/ 07 февраля 2020

Если я вас правильно понял, вы хотите получить выбранный выпадающий список и передать его в переменную ниже, так что вы можете использовать javascript, например, так:

<form method="post" action="/">
  <select id="Country" name="Country">
    <option value="MX">Mexico</option>
    <option value="CA">Canada</option>
    <option value="US">USA</option>
  </select>

  <button type="submit">Register</button>
</form>



var getCountry = document.getElementById("Country");
var selectedValue = getCountry.options[getCountry.selectedIndex].value;
1 голос
/ 07 февраля 2020

Приведенный ниже код выполняется только один раз при загрузке страницы, чтобы помочь визуализации HTML для вашего просмотра. Это верно для любых C#, которые есть в ваших файлах cs html.

@{
  string selectedValue = ???;
  string selectedText = ???;
} 

Как отмечалось в других ответах, способ динамического получения значения любого элемента управления вводом осуществляется с помощью JavaScript.

Я предполагаю, что после того, как вы извлечете выбранное значение и текст из выпадающего списка, вы захотите использовать его для чего-то в частичном представлении?

В каком случае, для этого вам также понадобится JavaScript.

//retrieve your values
var e = document.getElementById("Country");
var value= e.options[e.selectedIndex].value;
var text= e.options[e.selectedIndex].text;

//use them to do something 
var targetElement = document.getElementById("your-target-elements-id");
targetElement.innerHtml = 'Text:' + text + ' Value:' + value;
...