[英]C# & ASP.NET MVC : call a view with ajax call
我想在当前视图上调用 ajax 调用视图。 以下是我的 Ajax 调用,它调用了我的 controller 的 function。
$.ajax({
type: 'POST',
url: '@Url.Action("EditCertificateObservation", "Frühwarnsystem")',
data: {
serverName: '@Model[0].ServerName',
name: event.data.name,
thumbprint: event.data.thumbprint,
expiringDateStr: event.data.expiringDate,
isChecked: document.getElementById(store + event.data.index).checked,
model: data,
},
});
此代码是我的 controller function ,它返回要加载的视图。
[HttpPost]
public ActionResult EditCertificateObservation(string serverName, string name, string thumbprint, string expiringDateStr, bool isChecked, string model)
{
var newModel = JsonConvert.DeserializeObject<List<Store>>(model);
var cert = new Certificate(serverName, name, thumbprint, expiringDateStr);
var server = new Server(serverName);
server.FetchIdByServerName();
if (isChecked)
{
cert.AddToObservation(server.Id);
}
else
{
cert.DeleteFromObservation();
}
return View("Index");
}
为您了解:我调用 ajax 调用时在我的视图上带有一个复选框,该复选框是动态生成的。 如果我调试 controller function 被调用并运行,但浏览器不会加载我返回的视图。
如果您需要更多信息,请在此处询问。
谢谢您的帮助
您正在调用 ajax POST HTTP 请求。 这意味着您可以下载调用结果并将其分配给 javascript 变量。 此结果不会作为页面显示在浏览器中。 在此处查看$.post
的示例。
如果您想在 Ajax 请求之后打开一个视图,那么您只需等待 controller 的响应,那么您可以使用success
,但您也可以根据需要使用failure
或error
,所以您的 Z3EB7106C3477A59CDE1 会像这样:
$.ajax({
type: 'POST',
url: '@Url.Action("EditCertificateObservation", "Frühwarnsystem")',
data: {
serverName: '@Model[0].ServerName',
name: event.data.name,
thumbprint: event.data.thumbprint,
expiringDateStr: event.data.expiringDate,
isChecked: document.getElementById(store + event.data.index).checked,
model: data,
},
success: function (response) {
alert(response.message);
window.location.href = "/Frühwarnsystem/Index";
// or with some parameter
window.location.href ="/Frühwarnsystem/Index?id=" + response.counter;
// or if you prefer with helper ...
window.location.href = '@Url.Action("Frühwarnsystem","Index")';
},
failure: function (response) { alert("failure"); },
error: function (response) { alert("error"); }
});
为了更有用一点,您的 controller 可以发送带有一些参数的Json 响应,例如,如下所示:
[HttpPost]
public JsonResult EditCertificateObservation(string serverName, string name, string thumbprint, string expiringDateStr, bool isChecked, string model)
{
var newModel = JsonConvert.DeserializeObject<List<Store>>(model);
var cert = new Certificate(serverName, name, thumbprint, expiringDateStr);
var server = new Server(serverName);
server.FetchIdByServerName();
if (isChecked)
{
cert.AddToObservation(server.Id);
}
else
{
cert.DeleteFromObservation();
}
// Do some condition here to send an answer ...
string message = "";
int counter = 0;
var response = new { counter, message };
return Json(response);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.