带有动作调用的MVC动态javascript
动态JavaScript on change事件未触发我的操作结果如下带有动作调用的MVC动态javascript,javascript,asp.net-mvc,model-view-controller,Javascript,Asp.net Mvc,Model View Controller,动态JavaScript on change事件未触发我的操作结果如下 public ActionResult About() { ViewBag.Script = "<input type='text' name='myName' onchange='nameChange(this)' /><br/>" + "<script type='text/javascript'>function
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)
}
使用
contentType:'application/json;charset=utf-8'
您正在定义将使用$.ajax
请求发送Json
,但您没有。通过将$.ajax数据
更改为:
data:JSON.stringify({name:d})
您还在$.ajax
中定义了POST事务,因此控制器操作应使用[HttpPost]
属性修饰:-
[HttpPost]
public ContentResult Search(string name)
{
return Content("hello@gmail.com");
}
这不是Javascript。也许您忘记添加Typescript标记了?没有Typescript jquery/Javascript您显示的代码肯定不是Javascript。Javascript没有类型,也没有
public
或private
或void
。我说的是MVC,我将它绑定在cshtml页面上。为什么您要以这种方式发送脚本,而不是使用单独的.js文件?通过visual studioHi编写和调试一个单独的文件更简单、更容易,但我不会将搜索函数的名称设为null。获取它d.value
给了我预期的结果