Javascript ViewData不是';t正在通过Jquery显示
我脑子一片空白,似乎找不到解决办法,但我相信这很简单 我有一个控制器,它有6个Javascript ViewData不是';t正在通过Jquery显示,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我脑子一片空白,似乎找不到解决办法,但我相信这很简单 我有一个控制器,它有6个ViewData,这个动作是从jqueryajax请求调用的,然后我想将这些项输入到各种文本框中 JQuery $("#tableid").click(function () { ///EXTRACT DATA FROM TABLE ROW var insertText = $(this).text(); $.a
ViewData
,这个动作是从jqueryajax
请求调用的,然后我想将这些项输入到各种文本框中
JQuery
$("#tableid").click(function () {
///EXTRACT DATA FROM TABLE ROW
var insertText = $(this).text();
$.ajax({
url: '@Url.Action("UserDetails", "Home")',
data: { 'userLogin': insertText },
type: "post",
cache: false,
success: function () { <===== PROBLEM SOMEWHERE IN THIS FUNCTION
var userID = ViewData["userID"];
var userName = ViewData["userName"];
var userFName = ViewData["userFName"];
var userSName = ViewData["userSName"];
var userEmail = ViewData["userEmail"];
var userActive = ViewData["userActive"];
$('#txtUL').empty().append(userID)
$('#txtUI').empty().append(userName)
$('#txtFN').empty().append(userFName)
$('#txtSN').empty().append(userSName)
$('#txtE').empty().append(userEmail)
$('#txtA').empty().append(userActive)
}
});
});
});
调试时,ViewData
字段都填充在控制器中,因此它必须是Jquery,谢谢,如果您有任何问题,请询问。(我适当地缩短了一些代码。jQuery正在进行Ajax调用,因此您无法访问ViewData
对象。
为什么不从控制器返回json对象
public JsonResult UserDetails(string userLogin)
{
if (string.IsNullOrEmpty(userLogin))
{
return Json(new {});
}
Manager manager = new Manager();
var details = manager.GetUserData(userLogin);
if (details != null)
{
return Json(new {userID = details.Id, userName = details.Login, userFName = details.FirstName, userSName = details.Surname, userEmail = details.Email = details.Active});
}
return Json(new {});
}
如您所见,控制器现在返回一个JsonResult
您的javascript应该如下所示:
$.ajax({
url: '@Url.Action("UserDetails", "Home")',
data: { 'userLogin': insertText },
type: "POST",
dataType: 'json',
cache: false,
success: function (data) {
if (!jQuery.isEmptyObject(data)) {
$('#txtUL').empty().append(data.userID)
$('#txtUI').empty().append(data.userName)
$('#txtFN').empty().append(data.userFName)
$('#txtSN').empty().append(data.userSName)
$('#txtE').empty().append(data.userEmail)
$('#txtA').empty().append(data.userActive)
}
}
})
我添加了数据类型:“json”
,因为您需要一个json对象。
我的控制器返回一个空对象以防出错。
您可以使用jQuery.isEmptyObject(data)
检查它
现在,您的success
回调应该会收到控制器返回的对象。jQuery正在进行Ajax调用,因此您无法访问ViewData
对象。
为什么不从控制器返回json对象
public JsonResult UserDetails(string userLogin)
{
if (string.IsNullOrEmpty(userLogin))
{
return Json(new {});
}
Manager manager = new Manager();
var details = manager.GetUserData(userLogin);
if (details != null)
{
return Json(new {userID = details.Id, userName = details.Login, userFName = details.FirstName, userSName = details.Surname, userEmail = details.Email = details.Active});
}
return Json(new {});
}
如您所见,控制器现在返回一个JsonResult
您的javascript应该如下所示:
$.ajax({
url: '@Url.Action("UserDetails", "Home")',
data: { 'userLogin': insertText },
type: "POST",
dataType: 'json',
cache: false,
success: function (data) {
if (!jQuery.isEmptyObject(data)) {
$('#txtUL').empty().append(data.userID)
$('#txtUI').empty().append(data.userName)
$('#txtFN').empty().append(data.userFName)
$('#txtSN').empty().append(data.userSName)
$('#txtE').empty().append(data.userEmail)
$('#txtA').empty().append(data.userActive)
}
}
})
我添加了数据类型:“json”
,因为您需要一个json对象。
我的控制器返回一个空对象以防出错。
您可以使用jQuery.isEmptyObject(data)
检查它
现在,您的success
回调应该会收到控制器返回的对象。jQuery正在进行Ajax调用,因此您无法访问ViewData
对象。
为什么不从控制器返回json对象
public JsonResult UserDetails(string userLogin)
{
if (string.IsNullOrEmpty(userLogin))
{
return Json(new {});
}
Manager manager = new Manager();
var details = manager.GetUserData(userLogin);
if (details != null)
{
return Json(new {userID = details.Id, userName = details.Login, userFName = details.FirstName, userSName = details.Surname, userEmail = details.Email = details.Active});
}
return Json(new {});
}
如您所见,控制器现在返回一个JsonResult
您的javascript应该如下所示:
$.ajax({
url: '@Url.Action("UserDetails", "Home")',
data: { 'userLogin': insertText },
type: "POST",
dataType: 'json',
cache: false,
success: function (data) {
if (!jQuery.isEmptyObject(data)) {
$('#txtUL').empty().append(data.userID)
$('#txtUI').empty().append(data.userName)
$('#txtFN').empty().append(data.userFName)
$('#txtSN').empty().append(data.userSName)
$('#txtE').empty().append(data.userEmail)
$('#txtA').empty().append(data.userActive)
}
}
})
我添加了数据类型:“json”
,因为您需要一个json对象。
我的控制器返回一个空对象以防出错。
您可以使用jQuery.isEmptyObject(data)
检查它
现在,您的success
回调应该会收到控制器返回的对象。jQuery正在进行Ajax调用,因此您无法访问ViewData
对象。
为什么不从控制器返回json对象
public JsonResult UserDetails(string userLogin)
{
if (string.IsNullOrEmpty(userLogin))
{
return Json(new {});
}
Manager manager = new Manager();
var details = manager.GetUserData(userLogin);
if (details != null)
{
return Json(new {userID = details.Id, userName = details.Login, userFName = details.FirstName, userSName = details.Surname, userEmail = details.Email = details.Active});
}
return Json(new {});
}
如您所见,控制器现在返回一个JsonResult
您的javascript应该如下所示:
$.ajax({
url: '@Url.Action("UserDetails", "Home")',
data: { 'userLogin': insertText },
type: "POST",
dataType: 'json',
cache: false,
success: function (data) {
if (!jQuery.isEmptyObject(data)) {
$('#txtUL').empty().append(data.userID)
$('#txtUI').empty().append(data.userName)
$('#txtFN').empty().append(data.userFName)
$('#txtSN').empty().append(data.userSName)
$('#txtE').empty().append(data.userEmail)
$('#txtA').empty().append(data.userActive)
}
}
})
我添加了数据类型:“json”
,因为您需要一个json对象。
我的控制器返回一个空对象以防出错。
您可以使用jQuery.isEmptyObject(data)
检查它
现在,您的success
回调应该会接收控制器返回的对象。您不需要编写JsonRequestBehavior.DenyGet
,这是默认设置behavior@teovankot:我不知道。谢谢:-)完美的代码,根据teo的建议,运行非常顺利,谢谢,伙计们,错误检查使这很容易+1@hjardine:很高兴我帮了忙。干杯。您不需要编写JsonRequestBehavior.DenyGet
,这是默认设置behavior@teovankot例如我不知道。谢谢:-)完美的代码,根据teo的建议,运行非常顺利,谢谢各位p.s错误检查使这变得很容易+1@hjardine:很高兴我帮了忙。干杯。您不需要编写JsonRequestBehavior.DenyGet
,这是默认设置behavior@teovankot例如我不知道。谢谢:-)完美的代码,根据teo的建议,运行非常顺利,谢谢各位p.s错误检查使这变得很容易+1@hjardine:很高兴我帮了忙。干杯。您不需要编写JsonRequestBehavior.DenyGet
,这是默认设置behavior@teovankot例如我不知道。谢谢:-)完美的代码,根据teo的建议,运行非常顺利,谢谢各位p.s错误检查使这变得很容易+1@hjardine:很高兴我帮了忙。干杯