MVC C# DropDownListFor установка и получение значения

149
06 ноября 2019, 08:40

Пересмотрел кучу кода по MVC, Везде примера на 500 строчек кода минимум.

Есть список справочник Plane (ключ key.plane) Есть текущая запись InstanceC (ссылка на справочник InstanceC.ID_plane)

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

У меня есть следующий код: AccountController.cs

public ActionResult ClickDetails(String slctplane, String Description,String SaveInstance, string AddInstance, string ActivePlane, string RestartInstance, string GeneratePassword, string ResetDB, String DelInstance)
{
            if (ActivePlane != null)
    {
      String id_plane = slctplane; // Выбранный тарифный план
    }

}

Модель:

public class Plane
{
    // ID - тарифного плана
    [Key]
    public int key_plane { get; set; }
    // Название тарифного плана
    public String Name_plane { get; set; }
    // Кол-во пользователей
    public int Num_users { get; set; }
    // Максимальный размер БД
    public int Size_db { get; set; }
    // Максимальная частота обращений в минуту н инстанс
    public int Freq_in_minute { get; set; }
    // Цена в месяц в $
    public int Price_usd { get; set; }
    // Цена в месяц в р.
    public int Price_r { get; set; }
}

Модель

public class InstanceC
{
    [Key]
    // ID - инстанции
    public int key_Instance { get; set; }
    //Пользователь, кому пренадлежит инстанция String
    public String ID_user { get; set; }
    // ключ тарифного плана

    //Ключ сервера, куда будет обращаться IOT
    public int ID_Server { get; set; }
    // Login MQTT
    public String Login_inst { get; set; }
    //Password MQTT
    public String Password_inst { get; set; }
    public int SetStatusForBroker { get; set; }
    public String Description { get; set; }
    public int ID_plane { get; set; }
    public String Name_plane { get; set; }
    public int Price_usd { get; set; }
    public int Price_r { get; set; }
    public int Num_users { get; set; }
    public int RealStatus { get; set; }
    public String Name_server { get; set; }
    public String Name_domain { get; set; }
}
Answer 1
У меня в Details.cshtml есть следующий код
@{
    ViewBag.Title = "Подробнее/";
}

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
</head>


<body>
@using (Html.BeginForm("ClickDetails", "Account", FormMethod.Post))
{


    <div>

        <h2>Подробнее</h2>
        <div class="cloud-box">
            <div class="row">
                <div class="col-md-12">
                    <h3>Информация о инстанции</h3>
                </div>
            </div>

  @foreach (var i in ViewBag.Details)
  { 
             <div class="row">
                <div class="col-md-8">
                    <table class="table cloud-data">
                        <tbody>

                            <tr>
                                <td>Название</td>
                                <td>
                                    <input name="Description" type="text" value="@i.Description" class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-sm">

                                    <button name="SaveInstance" value="@i.key_Instance" type="submit" class="btn btn-success btn-sm pull-right">
                                        <i class="glyphicon glyphicon-floppy-saved"></i>
                                        Сохранить
                                    </button>

                                    <button name="DelInstance" value="@i.key_Instance" type="submit" class="btn btn-danger btn-sm pull-right">
                                        <i class="glyphicon glyphicon-floppy-saved"></i>
                                        Удалить
                                    </button>

                               </td>
                            </tr>

                            <tr>
    <td>Тарифный план</td>




    <td>



                                    <button type="button" value="" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#ActivePlaneDlg">
                                        <i class="glyphicon glyphicon-usd"></i>
                                        Активировать
                                    </button>


                                    <div class="modal fade" id="ActivePlaneDlg" tabindex="-1" role="dialog" aria-labelledby="ActivePlaneTitle" aria-hidden="true">
                                        <div class="modal-dialog modal-dialog-centered" role="document">
                                            <div class="modal-content">
                                                <div class="modal-header">
                                                    <h5 class="modal-title" id="ActivePlaneTitle">Активация тарифного плана</h5>
                                                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                                        <span aria-hidden="true">&times;</span>
                                                    </button>
                                                </div>
                                                <div class="modal-body">
                                                    Старый тарифный план будет аннулирован.
                                                    Активировать и оплатить новый тарифный план?
                                                </div>
                                                <div class="modal-footer">
                                                    <button class="btn btn-secondary" id="ActivePlane" name="ActivePlane" value="id_plane=1">
                                                        <i class="glyphicon glyphicon-usd"></i>
                                                        Да
                                                    </button>
                                                    <!--
                                                                                                        <input type="submit" name="ActivePlane" value="Сохранить" />
                                                                                                        <button type="button" class="btn btn-secondary" data-dismiss="modal">Да</button> -->
                                                    <button type="button" class="btn btn-primary" data-dismiss="modal">Нет</button>
                                                </div>
                                            </div>
                                        </div>
                                    </div>


                                </tr>
                            <tr>
                                <td>Статус тарифного плана</td>
                                <td>
                                    <font color="green">Активирован</font>
                                </td>
                            </tr>
                            <tr>
                                <td>Дата продления</td>
                                <td>01.01.2019</td>
                            </tr>
                            <tr>
                                <td>Автопродление</td>
                                <td>Активировано</td>
                            </tr>

                            <tr>
                                <td>Сервер</td>
                                <td>@i.Name_domain</td>
                            </tr>

                            <tr>
                                <td>Пользователь</td>
                                <td>
                                    @i.Login_inst

                                    <button type="button" class="btn btn-cloud btn-cloud-danger btn-sm pull-right" data-toggle="modal" data-target="#RebootInstanceDlg">
                                        <i class="glyphicon glyphicon-repeat"></i>
                                        Перезапуск
                                    </button>



                                    <div class="modal fade" id="RebootInstanceDlg" tabindex="-1" role="dialog" aria-labelledby="RebootInstanceTitle" aria-hidden="true">
                                        <div class="modal-dialog modal-dialog-centered" role="document">
                                            <div class="modal-content">
                                                <div class="modal-header">
                                                    <h5 class="modal-title" id="RebootInstanceTitle">Перезагрузка</h5>
                                                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                                        <span aria-hidden="true">&times;</span>
                                                    </button>
                                                </div>
                                                <div class="modal-body">
                                                    Вы уверены, что хотите перезагрузить инстанс?
                                                </div>
                                                <div class="modal-footer">
                                                   <!-- <button type="button" name="RestartInstance" class="btn btn-secondary" data-dismiss="modal">Да</button>
                                                    <input type="submit" name="RestartInstance" value="Да" />-->

                                                    <button class="btn btn-secondary" id="RestartInstance" name="RestartInstance" value="id_instance=1">
                                                        <i class="glyphicon glyphicon-repeat"></i>
                                                        Да
                                                    </button>     
                                                      <button type="button" class="btn btn-primary" data-dismiss="modal">Нет</button>
                                                </div>
                                            </div>
                                        </div>
                                    </div>

                                </td>
                            </tr>
                            <tr>
                                <td>
                                    Пароль
                                </td>
                                <td>
                                    @i.Password_inst
                                    <button type="button" class="btn btn-cloud btn-cloud-danger btn-sm pull-right" data-toggle="modal" data-target="#ResetPasswordInstanceDlg">
                                        <i class="glyphicon glyphicon-refresh"></i>
                                        Сгенерировать
                                    </button>

                                    <div class="modal fade" id="ResetPasswordInstanceDlg" tabindex="-1" role="dialog" aria-labelledby="ResetPasswordInstanceTitle" aria-hidden="true">
                                        <div class="modal-dialog modal-dialog-centered" role="document">
                                            <div class="modal-content">
                                                <div class="modal-header">
                                                    <h5 class="modal-title" id="ResetPasswordInstanceTitle">Генерация нового пароля</h5>
                                                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                                        <span aria-hidden="true">&times;</span>
                                                    </button>
                                                </div>
                                                <div class="modal-body">
                                                    Сгенерировать новый пароль?
                                                </div>
                                                <div class="modal-footer">

                                                    <button class="btn btn-secondary" id="GeneratePassword" name="GeneratePassword" value="id_plane=2">
                                                        <i class="glyphicon glyphicon-refresh"></i>
                                                        Да
                                                    </button>                                                    
                                                   <!-- <button type="button" id="GeneratePassword" class="btn btn-secondary" value="id_psw=1" name="GeneratePassword" data-dismiss="modal">Да</button>  -->

                                                    <!--<input type="submit" name="GeneratePassword" value="Да" />-->
<!--
                                                    <button class="btn btn-danger" id="resetdb" name="ResetDB" value="id_plane=1">
                                                        <i class="glyphicon glyphicon-trash"></i>
                                                        Сброс БД
                                                    </button>
                                                    >-->
                                                    <button type="button" class="btn btn-primary" data-dismiss="modal">Нет</button>
                                                </div>
                                            </div>
                                        </div>
                                    </div>


                                </td>
                            </tr>
<!----------------------------Начало: Список доступных портов---------------------------------------------------->

                            @foreach (var a in ViewBag.PortsDetail)
                            { 


                            <tr>
                                <td>Протокол</td>
                                <td>
                                   @a.NamePort
                                </td>
                            </tr>

                            <tr>
                                <td>Порт №</td>
                                <td>
                                    @a.NumPort
                                </td>
                            </tr>
                            <hr>
                            }
<!---------------------------Конец: Список доступных портов------------------------------------------------------>
                        </tbody>
                    </table>
                </div>
            </div>
            <hr>
            <div class="row">
                <div class="col-md-12">
                    <h3>Сброс БД</h3>
                </div>
                <div class="col-md-10">
                    Это сотрет все сохраненные сообщения в БД.
                </div>
                <div class="col-md-2">
                    <form action="https://*/console/9751325/details/reset" class="pull-right" id="reset-form" method="post">
                        <button class="btn btn-danger" id="resetdb" name="ResetDB" value="id_plane=1">
                            <i class="glyphicon glyphicon-trash"></i>
                            Сброс БД
                        </button>
                    </form>
                </div>
            </div>
            <hr>
            <div class="row">
                <div class="col-md-12">
                    <h3>API</h3>
                </div>
            </div>
            <div class="row">
                <div class="col-sm-2">
                    <strong>API ключ</strong>
                </div>
                <div class="col-sm-10">
                    <code>0942387c-de7c-4241-2349da3-e59e4c1afdf6</code>
                </div>
            </div>
      }  
        </div>
   </div> 
}
</body>
</html>
READ ALSO
Не могу вызвать окно для обобщенного интерфейса ( Caliburn.Micro использование generic interface)

Не могу вызвать окно для обобщенного интерфейса ( Caliburn.Micro использование generic interface)

Я пытаюсь сделать окно для отображения списка разных типов и не могу вызвать окно для обобщенного интерфейса

113
c# определить нажатие клавиши в консольном проекте [закрыт]

c# определить нажатие клавиши в консольном проекте [закрыт]

мне нужно определить нажатие клавиш в консольном проекте (не набора в консоли)

103
Возникает ошибка?

Возникает ошибка?

Выдает такую ошибку:

155
Для чего тут используется функция count()?

Для чего тут используется функция count()?

Для чего тут используется функция count(), ведь если isset() выполнится, то понятно, что массив содержит больше одного элемента или нет?

150