Вернуться назад использовать Ajax - PullRequest
0 голосов
/ 05 мая 2018

Я хочу вызвать представление, используя скрипт Ajax:

На главном экране:

<script>
    var onCommand = function (column, command, record, recordIndex, cellIndex) {
       Ext.Msg.alert('record = ' + record.data.ID);
        Ext.Ajax.request({
            url: '/Details/',
            method: 'GET',
            params: {
                id: record.data.ID
            },

            success: function (response) {
                var result = (response.responseText);
                if (result != "") {
                    modelName = result;
                    CreateLookUp(combo, id, false, true);
                } else {

                    CreateLookUp(combo, id, true, false);
                }
            }
        });

            }
</script>

Контроллер:

  // GET: Bob/Details/5
        public ActionResult Details(String ID)
        {
           int  id = Convert.ToInt32(ID);
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            BobRepository bobRepository = new BobRepository();
            Bob bob = bobRepository.GetBob(id);
            if (bob == null)
            {
                return HttpNotFound();
            }
            return View(bob);
        }

Вызывается вызов функции контроллера, представление Turget не возвращается. В чем причина?

1 Ответ

0 голосов
/ 05 мая 2018

Я не уверен, что вы пытаетесь сделать, я предполагаю, что вы заполняете это представление в каком-то всплывающем моде, сначала вам нужно вернуть частичное представление вместо представления, я предлагаю проверить, является ли запрос ajax затем вернуть частичное представление, иначе вернуть представление, как то так

if(Request.IsAjaxRequest())
{return PartialView(bob);}
else
return View(bob);

в вашем js, проанализируйте текст в html, вы можете использовать jquery.htmlparse

  success: function (response) {
                var result =  $.parseHTML(response);
                //do what you want with your html
...