Вы можете использовать AJAX. Поэтому настройте действие контроллера, используя идентификатор клиента как параметр, и который будет запрашивать вашу базу данных и возвращать соответствующее имя магазина как результат JSON. Затем подпишитесь на событие .blur
текстового ввода, содержащего идентификатор магазина, и отправьте вызов AJAX на действие контроллера, чтобы заполнить второе поле ввода.
Да, я знаю, бессмысленный jibber-jabber, дайте код.
Здесь:
public ActionResult GetStoreName(int clientId)
{
// of course thath's just an example here. I have strictly no idea
// what database access technology you are using, how your models look like
// and so on. Obviously you will have to adapt this query to your data model.
var client = db.Clients.FirstOrDefault(x => x.Id == clientId);
if (client == null)
{
return HttpNotFound();
}
return Json(new { storeName = client.Store.Name }, JsonRequestBehavior.AllowGet);
}
Теперь предполагая следующий вид:
<div>
@Html.LabelFor(x => x.ClientId)
@Html.TextBoxFor(x => x.ClientId, new { id = "clientId", data-url = Url.Action("GetStoreName") })
</div>
<div>
@Html.LabelFor(x => x.Store.Name)
@Html.TextBoxFor(x => x.Store.Name, new { id = "storeName" })
</div>
в отдельном файла JavaScript вы можете подписаться на .blur
события первого текстового поля, и вызвать запрос AJAX к контроллер отправляет ему идентификатор клиента, который был введен пользователем. В обратном вызове успеха вы должны обновить второе текстовое поле с результатом вызова AJAX:
$(function() {
$('#clientId').blur(function() {
var clientId = $(this).val();
$.ajax({
url: $(this).data('url'),
type: 'GET',
cache: false,
data: { clientId: clientId },
success: function(result) {
$('#storeName').val(result.storeName);
}
});
});
});
Это будет автозаполнение от каких данных? На основании какой информации? Таким образом, у вас есть имя, введенное пользователем. Откуда будет последнее имя? База данных? Что, если есть несколько последних имен, связанных с данным первым именем? Также не забывайте упоминать в своем вопросе [то, что вы пробовали] (http://mattgemmell.com/2008/12/08/what-have-you-tried/) до сих пор и с какими конкретными трудностями вы столкнулись с код, который вы пытались выполнить. –
Я обновил свой вопрос, я надеюсь, что это будет немного более ясно ... Я хотел бы попробовать что-то, но я действительно не понимаю, как это делается, где начинаются или что ищут в Интернете. .. – Alternative