控制器没有返回json数据到视图在asp.net MVC Ajax
问题描述:
我正面临的问题,同时返回Json值查看。我不知道为什么它发生可能是JQuery的问题。以下是我的代码供参考。它不执行AJAX的成功参数。控制器没有返回json数据到视图在asp.net MVC Ajax
<script type="text/javascript">
var $edituserform = $("#edituserform");
$(document).ready(function() {
$('#userList').DataTable();
});
function updateuser(id)
{
var myUrl = '@Url.Action("EditUser", "Admin")';
//var myUrl = '/Admin/EditUser?Id=' + id;
alert(id)
$.ajax({
url: myUrl,
type: 'GET',
data: {Id:id},
dataType: 'json',
sucess: function (result) {
alert('inside success')
//$edituserform.html(result.partialView);
$edituserform.load(result);
}
})
}
---- ----控制器
public ActionResult EditUser(int Id)
{
try
{
var objUser = objUserLogic.GetUserById(Id);
//return Json(new { partialView = MvcHelper.RenderPartialView(this, "_EditUser", objUser, null) }, JsonRequestBehavior.AllowGet); //tried this commented code first
return PartialView("_EditUser", objUser);
}
catch (Exception Ex)
{
return View("ViewUsers");
}
}
答
一个PartialView
不是JSON,这你期待。更改dataType
到text/html
或返回JsonResult
,即Json(someModel)
+0
没有运气......尝试过但仍然没有结果。 – AYAZ
答
控制器方法
[HttpGet]
public JsonResult EditUser(int dil)
{
var objUser = objUserLogic.GetUserById(Id);
var jsonparse= objUser
.Select(x => new //This is trick that prepare json array
{
name=x.name,
Id=x.Id
});
return Json(jsonparse, JsonRequestBehavior.AllowGet);
}
的Ajax方法
$.ajax({
url: "/controllerName/getkat",
type: "GET",
cache: false,
contentType: "application/json",
data: { Id: xxx},
dataType: "json",
success: function (data) {
if (data.length > 0) {
//Parse Response
$.each(data, function (i, state) {
$('<option>', {
value: state.Id
}).html(state.name).appendTo($select);
});
}
},
complete: function() {
},
error: function() {
}
});
在哪些方面做了注释掉的解决方案不起作用? –
您的js中的数据类型是'josn',但应该是'json' – Corporalis
@Corporalis将'josn'更改为'json',但仍然不能正常工作... – AYAZ