我是jquery-ajax的初学者。我试图使用ajax方法将Employee数据导入前端。但是url没有调用action方法。请检查以下代码
MyScripts.js:
function fn_test()
{
var eno = $("#t1").val();
$.ajax({
cache :false,
url: "Home/GetEmpData/"+eno,
type: 'GET',
data:"",
contentType:'application/json;',
success: function (response)
{
var str = "Ename :" + response.EmpName + "<br >";
str += "Job :" + response.Job + "<br >";
tr += "Salary :" + response.Salary + "<br >";
str += "Deptno :"+response.DeptNo+"<br >";
$("#sp1").html(str);
}
});
}
HomeController.cs中的Action方法
public ActionResult GetEmpData(int id)
{
Employee obj = db.Employees.Find(id);
return Json(obj, JsonRequestBehavior.AllowGet);
}
Index.cshtml
Enter your name :
<input type="text" id="t1" /><br /><br />
<input type="button" id="b1" onclick="fn_test()" value="get message" /><br /><br />
<span id="sp1"></span>
请帮帮我。
答案 0 :(得分:0)
使用
正确构建网址url: '@Url.Action("GetEmpData", "Home")',
使用
传递数据data: { id: eno },
并删除
contentType:'application/json;',
修改
由于您的脚本位于单独的文件中,请将您的html修改为
<input type="button" id="b1" data-url="@Url.Action("GetEmpData", "Home")" value="get message" />
然后将脚本更改为
$('#b1').click(function() {
$.ajax({
cache :false,
url: $(this).data('url'),
type: 'GET',
data: { id: $("#t1").val() },
success: function (response) {
...
}
});
});
答案 1 :(得分:-1)
你传递参数作为查询字符串。你告诉浏览器使用这个吗?在控制器中使用的变量名之前签名,之后您可以为此赋值。
function fn_test()
{
var eno = $("#t1").val();
$.ajax({
cache :false,
url: "Home/GetEmpData?parameterNameInController="+eno,
type: 'GET',
data:"",
contentType:'application/json;',
success: function (response)
{
var str = "Ename :" + response.EmpName + "<br >";
str += "Job :" + response.Job + "<br >";
tr += "Salary :" + response.Salary + "<br >";
str += "Deptno :"+response.DeptNo+"<br >";
$("#sp1").html(str);
}
});
}
public ActionResult GetEmpData(int id)
{
Employee obj ;
try{
obj = db.Employees.Find(id);
return Json(obj, JsonRequestBehavior.AllowGet);
}catch(Exception ex)
{ obj=new Employee();
//return empty object
return Json(obj, JsonRequestBehavior.AllowGet);
}
}