Как передать флажок в качестве параметра в функции контроллера, используя ASP.NET MVC - PullRequest
0 голосов
/ 31 марта 2019

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

Я установил имена флажков, и я использовал эти имена в аргументах функции, которую я вызываю.Это, однако, все равно возвращает мне ложь, независимо от того, установил ли пользователь флажки

Это секция cshtml моего кода

 @using (Html.BeginForm("PasswordGenerator", "Generator", FormMethod.Post))
        {
                <table class="TablePre">

                    <tr class="TableTop">

                        <th>Preferences</th>

                    </tr>

                    <tr >
                        <td class="Spacing">
                            <input type="checkbox" value="letters" name="letters" id="iletters"/>
                            <label for="letters">Letters</label>
                        </td >
                    </tr>

                    <tr >
                        <td class="Spacing">
                            <input type="checkbox" value="numbers" name="numbers" id="inumbers" />
                            <label for="numbers">Numbers</label>
                        </td>
                    </tr>

                    <tr >
                        <td class="Spacing">
                            <input type="checkbox" value="symbols" name="symbols" id="isymbols" />
                            <label for="symbols">Symbols</label>
                        </td>
                    </tr>

                    <tr>
                        <td class="Spacing">
                            <input type="checkbox" value="words" name="words" id="iwords" />
                            <label for="words">Words</label>
                        </td>
                    </tr>

                    <tr>
                        <td class="Spacing">
                            <input type="checkbox" value="creative" name="creative" id="icreative" />
                            <label for="creative">Add my creative touch</label>
                        </td>
                    </tr>

                    <tr >
                        <td class="Spacing">
                            <label style="display: inline-block" for="pLength">Password Length:</label>
                            <br />
                            <input type="text"  name="PLChoice" id="pLength" />                    
                        </td>
                    </tr>

                <tr>

                    <td style="text-align:right;" class="TableTop">

                        <button type="submit"> Generate <span class="fas fa-cog"> </span> </button>

                    </td>

                </tr>

                </table> @* End of Table for password Generation preferences *@

                <br />
                <br />
                <br />

                <table class="TablePre TableSpacing">

                    <tr class="TableTop">

                        <th>Output</th>

                    </tr>


        } @* End of form *@

, и это часть кода c #


        public ActionResult PasswordGenerator(bool letters = false , bool numbers = false, bool symbols = false, bool words = false, bool creative = false, int PLChoice = 0)
        {

            return View("Index");

        }

последний пример: если пользователь нажимает на флажок букв, логические буквы останутся ложными, а не изменятся на истинные.

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

1 Ответ

1 голос
/ 31 марта 2019

Установите флажок value="true" для всех, например

 <input type="checkbox" value="true" name="numbers" id="inumbers" />

Обновите tr, как показано ниже

<tr>
            <td class="Spacing">
                <input type="checkbox" value="true" name="letters" id="iletters" />
                <label for="letters">Letters</label>
            </td>
        </tr>

        <tr>
            <td class="Spacing">
                <input type="checkbox" value="true" name="numbers" id="inumbers" />
                <label for="numbers">Numbers</label>
            </td>
        </tr>

        <tr>
            <td class="Spacing">
                <input type="checkbox" value="true" name="symbols" id="isymbols" />
                <label for="symbols">Symbols</label>
            </td>
        </tr>

        <tr>
            <td class="Spacing">
                <input type="checkbox" value="true" name="words" id="iwords" />
                <label for="words">Words</label>
            </td>
        </tr>

        <tr>
            <td class="Spacing">
                <input type="checkbox" value="true" name="creative" id="icreative" />
                <label for="creative">Add my creative touch</label>
            </td>
        </tr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...