微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C# 和 ASP.NET MVC:使用 ajax 调用调用视图

如何解决C# 和 ASP.NET MVC:使用 ajax 调用调用视图

我想在当前视图上使用 ajax 调用调用视图。下面是我的 Ajax 调用,它调用了我的控制器的一个函数

$.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,},});

这段代码是我的控制器函数,它返回要加载的视图。

[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调用,它是动态生成的。如果我调试控制器函数调用并运行,但浏览器没有加载我返回的视图。

如果您需要更多信息,请在此处询问。

感谢您的帮助

解决方法

您正在调用 ajax POST HTTP 请求。这意味着您可以下载调用的结果并将其分配给一个 javascript 变量。此结果不会作为页面显示在浏览器中。查看 $.post here 的示例。

,

如果您想在 Ajax 请求之后打开一个视图,而不必等待控制器的响应,那么您可以使用 success,但您也可以使用 failure 或 {{1 }} 取决于你的需要,所以你的 Ajax 将是这样的:

error

为了更有用,您的控制器可以发送带有一些参数的 Json 响应,例如,如下所示:

$.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"); }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。