更改事件上的动态 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();
}
我的 Controller 如下
public ContentResult Search(string name)
{
return Content("hello@gmail.com");
}
但是操作网址没有被识别,有人可以帮助我吗
cshtml
@if (ViewBag.Script != null)
{
@Html.Raw(ViewBag.Script)
}
最佳答案
使用 contentType: 'application/json; charset=utf-8'
您定义将使用 $.ajax
请求发送 Json
,但您没有。您应该通过将 $.ajax 数据
更改为:
Json
对象:
数据:JSON.stringify({name:d})
您还在 $.ajax
中定义了 POST 事务,因此 Controller 操作应使用 [HttpPost]
属性进行修饰:-
[HttpPost]
public ContentResult Search(string name)
{
return Content("hello@gmail.com");
}
关于javascript - MVC 动态 javascript 与操作调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52235689/