MVC динамический JavaScript с призывом к действию - PullRequest
0 голосов
/ 08 сентября 2018

Динамический JavaScript на событии изменения не запускается. У меня есть результат действия следующим образом

public ActionResult About()
        {
            ViewBag.Script = "<input type='text' name='myName' onchange='nameChange(this)' /><br/>" +
                "<script type='text/javascript'>function nameChange(d){" +
                "$('[name=myEmail]').val('');" +
                "$.ajax({type: 'POST', url: '/Home/Search', data: '{name:d}', " +
                "contentType: 'application/json; charset=utf-8', dataType: 'html'," +
                "success: function(data) { $('[name=myEmail]').val(data.toString());            }        });" +
                "}</script>"
                + "<input type='text' name='myEmail' />";
            ViewBag.Message = "Your application description page.";

            return View();
        }

У меня есть мой контроллер следующим образом

public ContentResult Search(string name)
        {
            return Content("hello@gmail.com");
        }

Но URL-адрес действия не распознается, может ли кто-нибудь мне помочь

cshtml

@if (ViewBag.Script != null)
{

    @Html.Raw(ViewBag.Script)

}

1 Ответ

0 голосов
/ 08 сентября 2018

С помощью contentType: 'application/json; charset=utf-8' вы определяете, что отправите Json с запросом $.ajax, но это не так. Вы должны сделать Json объект, изменив $.ajax data на:

data: JSON.stringify({name:d})

Вы также определили транзакцию POST в вашем $.ajax, поэтому действие контроллера должно быть украшено атрибутом [HttpPost]: -

[HttpPost]
public ContentResult Search(string name)
{
    return Content("hello@gmail.com");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...