ammu11 Ответов: 1

Как автоматически получить значение на основе первого текстового поля в MVC


У меня есть текстовое поле для ввода идентификатора и еще одно текстовое поле для получения имени человека, имеющего идентификатор в первом текстовом поле. Но идентификатор и имя находятся в другой таблице под названием students. Здесь мое требование заключается в том, что когда я ввожу идентификатор в текстовое поле, мне нужно получить имя студента во втором поле текстового поля. Это мой контроллер
public async Task<ActionResult> Index()
        {
            var result = (from pm in db.Details
                          join d in db.Students on pm.Id equals d.ID
                          select new DetailsList
                          {
                              Id = d.ID,
                              Name = d.FirstName,
                              Cash=pm.Cash,
                              Date = pm.Date
                          }).ToList();
            return View(result);
        }
Это моя часть контроллера, где я объединил две таблицы в класс модели под названием DetailsLists
В моем представлении страница
@model IEnumerable<A.Models.DetailsList>

<table>
                    <tr style="height:40px">
                        <th style="width:120px;">
                             ID
                        </th>
                        <td style="height:30px;">
                            <input type="text" class="form-control"/>
</td>
                    </tr>
                    <tr style="height:40px">
                        <th style="width:120px;">
                            @Html.DisplayNameFor(model=>model.FirstName)
                        </th>
                        <td>
                            <input type="text" class="form-control" />
                        </td>
                    </tr>
<td>
                            <p>
                                @Html.ActionLink("Create New", "Create")
                            </p>
                        </td>
                    </tr>
                </table>


можно либо ввести идентификатор, либо отобразить все идентификаторы в выпадающем списке, и при выборе идентификатора он должен отображать имя во втором текстовом поле.

Что я уже пробовал:

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

F-ES Sitecore

Гугл "функции onblur AJAX-вызов" и "звонок в MVC действий Аякса" и поставить два вместе. По сути, вы используете событие onblur для вызова действия mvc, передавая значение поля id textbox вашему действию, а затем обрабатываете результат. Есть много примеров использования ajax и mvc, если вы посмотрите, это не служба написания домашних заданий.

1 Ответов

Рейтинг:
5

mkcoder11

У вас есть 2 текстовых поля, одно для идентификатора, а другое для отображения имени на основе идентификатора. Здесь лучшим решением будет использование jQuery AJAX. Вот как следует действовать.

1.в первом событии TextBox keydown сделайте jQuery AJAX для вызова функции C# на вашем контроллере.
2. Эта функция C# получит идентификатор и извлечет имя из базы данных на основе этого идентификатора и вернет имя в конце.
3. затем вы покажете это имя в текстовом поле вашего имени.

Вы сначала примените событие .keydown() к текстовому полю вашего идентификатора следующим образом:

$( "#idtextbox" ).keydown(function() {
  //jquery ajax code
});


Для совершения AJAX вызова вы можете использовать Способ Аякса или загрузка jQuery.

Вы также можете проверить это CodeProject Статья, которая делает вызов ajax в приложении MVC.