Как получить значение FormatDropDownListFor для выбранного в контроллере?

У меня есть FormatDropDownListFor на мой взгляд, как это

<%: Html.FormatDropDownListFor(m => m.ProductHoldTypeKey, Model.ProductHoldTypeOptions.ConvertWithSelection(Model.ProductHoldTypeKey))%>

в модели:

[DisplayName("Product Hold Type")]
[HtmlProperties(CssClass = "field-short")]
public long? ProductHoldTypeKey { get; set; }
public IList<SelectListItem> ProductHoldTypeOptions { get; set; }

в контроллере:

public ActionResult GetJob()
{
  jobViewModel.ProductHoldTypeOptions = _jobService.GetProductHoldType();

  if (jobViewModel.ProductHoldTypeKey == 2)// I am getting null here
  {
            // will do some task;
  }
 }

Я получаю нулевое значение в ProductHoldKey, я хочу выбранное значение, которое отображается в представлении. Пожалуйста, кто-нибудь, помогите мне.

То, что я пытаюсь сделать, на основе выбранной опции одного выпадающего меню, которое я пытаюсь удалить и добавить один элемент в другое раскрывающееся меню, если это возможно с помощью jQuery, тогда кто-то, пожалуйста, дайте мне знать пример кода.

2 ответа

Решение
$(document).ready(function () {
    if ($("#ProductHoldTypeKey").val() == "2") {
        $('#WorkStatusKey option[value="1"]').remove();
 });   

 $("#ProductHoldTypeKey").change(function () {
    if ($("#ProductHoldTypeKey").val() == "2") {
       $('#WorkStatusKey option[value="1"]').remove(); }
    else if ($("#ProductHoldTypeKey").val() == "3") {
       $("<option value="1">OPEN</option>").appendTo("#WorkStatusKey"); }
 });

Ваш вопрос и комментарии делают первую часть вашего вопроса немного запутанной.

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

Вы можете либо кодировать в документе готов или перехватить событие изменения

HTML

<select id="abc">
    <option>One</option>
    <option>Two</option>
    <option>Three</option>
</select>
<select id="xyz">
    <option>Four</option>
    <option>Five</option>
    <option>Six</option>
</select>

JQuery

if ($('#abc').find('option:selected').text() == "One") {
    $('#abc').find('option:selected').remove();
    $("<option>").text("Seven").appendTo("#xyz");
}

В этом примере, если выбранный элемент One в первом выпадающем списке он удаляется и другой элемент Seven добавлен во 2-й выпадающий список

Другие вопросы по тегам