【问题标题】:Ajax response from server. Add to a div来自服务器的 Ajax 响应。添加到一个 div
【发布时间】:2015-08-26 11:14:00
【问题描述】:

我正在执行以下操作: 我有一个模式,带有一个到服务器的 POST。 返回视图之前(引导模式配置为重新启动) 我在 ViewData 中存储了一些信息:如下所示:

ViewData["Msg"] = "<div id=\"msgResponse\" class=\"success alert-success alert-dismissable\">" +
                "<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">×</button>" +
                "<strong>Success!!</strong> .....</div>";

我想加载它的内容并附加到另一个 div,我该怎么做?

【问题讨论】:

  • ViewData 在这种情况下毫无意义。您可以只返回一个 PartialView 作为您的结果,其中视图包含您的所有 HTML。确实(正如@Kamo 建议的那样)您只需要返回一个状态并在客户端完成其余的工作。请也显示您的控制器代码。

标签: javascript c# jquery ajax model-view-controller


【解决方案1】:

为什么要在响应中返回整个 div?

如果您有 AJAX 调用,您可以使用 JsonResult 返回序列化的 JSON 响应,如下所示:

return new JsonResult(new Json({Message = "Success"}));

它将被 JQuery Ajax 函数读取。然后可以将其附加到您的 div 中。

如果您编辑您的问题并添加您正在使用的控制器和 JS 代码,我可以编辑我的答案,然后提供更多详细信息。

【讨论】:

    【解决方案2】:

    假设您在 C# 服务器端代码中有一些控制器操作方法如下:

    C#代码:

    public ActionResult gethtml_mymethod()
    {
        ViewData["Msg"] = "<div id=\"msgResponse\" class=\"success alert-success alert-dismissable\">" +
                    "<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">×</button>" +
                    "<strong>Success!!</strong> .....</div>";
    
        return View("html_myview", mymodel);        
    }
    

    你应该有html_myview.ascx 如下所示:

    <div id="Msg_Container">
        <%=ViewData["Msg"]%>
    </div>
    ......
    ......
    <div>
         Some HTML view
    </div>
    

    现在在模态弹出 Ajax 调用中,您可以按如下方式获取它:

    $.ajax({
       method: "POST",
       url: "/mycontroller/gethtml_mymethod",
       data: someJsonData,
       success: function(response){
           response = $("<div>"+response+"</div>");
           var MsgHTML = response.find("#Msg_Container").html(); //id = Msg_Container is present in html_myview.ascx
           var myAnotherDiv = $("#myAnotherDiv");//this div is where you want to append message
           myAnotherDiv.append(MsgHTML );
       }
    }); 
    

    我希望这就是你要找的。​​p>

    【讨论】:

    • 从字符串中返回包含硬连线 HTML 的视图有点毫无意义?整个问题应该简单得多,并且不是基于服务器端的(当然除了简单的状态返回)。
    猜你喜欢
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多