有!
这是一个使用jQuery的MVC应用程序。
在我的控制器中执行此操作时,我希望创建一个对象,然后打开一个视图来编辑该对象:
public ActionResult GetUserFromAD(string logon)
{
var userAD = new UsersAD().ListUsersFromAD(logon).FirstOrDefault();
var userApp = new User();
userApp .Logon = userAD .Login;
userApp .Nome = userAD .DisplayName;
userApp .Divisao = userAD .Orgao;
userApp .Email = userAD .Email;
return View(userApp );
}
我通过点击另一个视图中的元素从这个jQuery中调用此Action:
$(document).on("click", ".GetUserFromAD", function () {
var options = {};
options.url = "/Administracao/GetUserFromAD";
options.type = "GET";
options.data = { logon: $(this).attr("data-id") };
options.dataType = "json";
options.contentType = "application/json";
//options.success = function (data) {
//};
options.error = function () { alert("Error on getting user data from AD!") };
$.ajax(options);
});
嗯,事实是,从未加载预期的视图,虽然参数登录没问题,但对象userApp也没问题。
我得到的只是来自jQuery函数的这个警告(获取时出错......)。
我错过了什么?我该怎么做才能正确打开视图?
感谢您的时间。
Paulo Ricardo Ferreira
答案 0 :(得分:0)
以下是我建议的解决方案,希望这对您有用:
$(document).on("click", ".GetUserFromAD", function () {
var options = {};
options.url = "/Administracao/GetUserFromAD";
options.type = "GET";
options.data = { logon: $(this).attr("data-id") };
options.dataType = "json";
options.contentType = "text/html";
options.success = function (data) {
$('....container where you want your view to show up .....').html(data);
};
options.error = function () { alert("Error on getting user data from AD!") };
$.ajax(options);
});
另一种选择是进行ajax调用但不返回任何内容。而是重定向到另一个将加载您要使用的视图的操作
return RedirectToAction(Action name, model);
答案 1 :(得分:0)
最后我开始工作了。它使用respctive数据打开视图。
我的jQuery函数的代码如下:
$(document).on("click", ".GetUserFromAD", function () {
var logon = $(this).attr("data-id");
var targetUrl = "/Administracao/CreateUserOnApp/?logon=" + logon.toString();
window.location.href = targetUrl;
});
行动中的代码如下:
public ActionResult CreateUserOnApp(string logon)
{
var userAD = new UsuariosAD().ListUsersFromAD(logon).FirstOrDefault();
var userApp = new User();
userApp .Logon = userAD .Login;
userApp .Nome = userAD .DisplayName;
userApp .Divisao = userAD .Orgao;
userApp .Email = userAD .Email;
return View(userApp );
}
现在它按我预期的方式工作。
感谢所有帮助我找到实现目标的人。
Paulo Ricardo Ferreira