2017-01-24 4 views
5

Это мой C# Код:Как опубликовать значение из автозаполнения вместо текста?

public JsonResult FillUsers(string term) 
    { 
     var Retailers = from us in db.Users 
         join pi in db.UserPersonalInfoes on us.ID equals pi.UserID into t 
         from rt in t.DefaultIfEmpty() 
         where us.Status == true 
         select new 
         { 
          ID = us.ID, 
          Username = us.Username + ":(" + (rt == null ? String.Empty : rt.FirstName) + ")" 
         }; 

     List<string> UsersList; 
     UsersList = Retailers.Where(x => x.Username.Contains(term)).Select(y => y.Username).Take(10).ToList(); 

     return Json(UsersList, JsonRequestBehavior.AllowGet); 
    } 

HTML код:

<div class="col-md-3"> 
       @Html.TextBox("ddlUser", null, new { @id = "ddlUser", @class = "form-control" }) 
      </div> 

Javascript Код:

<script type="text/javascript"> 
$(function() { 
    $("#ddlUser").autocomplete({ 
     source: '@Url.Action("FillUsers", "FirebaseNotification")', 
     select:function(event, ui) 
     { 
      var id = ui.item.ID; 
      var name = ui.item.Username; 
     } 
     }); 
    }); 

Я хочу, чтобы показать 'имя пользователя' в текстовом поле, но когда форма будет пост Я хочу отправить 'ID'. Вместо этого я получаю имя пользователя.

+0

Вы можете использовать скрытое поле для сохранения этого UserID – Kathir07

+0

Почему бы не использовать комбинированный блок? https://jqueryui.com/autocomplete/#combobox. Потому что в отличие от отображаемый текст является значением. Где, как и для