Jquery 在javascript函数中包含的Asp.net代码中使用Javacscript参数

Jquery 在javascript函数中包含的Asp.net代码中使用Javacscript参数,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我的问题是: <script> function processRequest(username, sessionToken, connectionId, processType,friendUser) { var request = { Username: username, Password: null, SessionToken: sessionToken, ConnectionId: connectionId, ProcessType: processType };

我的问题是:

<script>
function processRequest(username, sessionToken, connectionId, processType,friendUser) {
    var request = { Username: username, Password: null, SessionToken: sessionToken, ConnectionId: connectionId, ProcessType: processType };
    $.ajax({
        type: "POST",
        url: '@ConfigurationSettings.AppSettings["APIURL"]/people/ProcessConnectRequest',
        data: request,
        datatype: "jsonp",
        success: function(result) {
            if (result === "PROCESSED") {
                $('#item_' + connectionId).remove();

                var htmlContent ='<div class="col-lg-4 gray-box">'
                            +'<div class="general-item-list" id="requestList">'
                              +  '<div class="item">'
                               +     '<div class="item-head">'
                                +        '<div class="item-details">'
                                 +        '@Html.Action("LoadPeopleStatus", "People", new { id ="abc"})'
                                +        '</div>'

                                 +   '</div>'
                              +  '</div>'
                           + '</div>'
                       + '</div>';

                $('#containerBox').append(htmlContent);
            }
        }
    });
}

我想用friendUser参数替换id=abc,但没有成功。有什么想法吗?

Html.Action将在客户端接收页面之前很久在服务器上呈现,更不用说开始处理脚本或使用您想要使用的参数执行成功回调了

不必构建要附加到容器中的HTML内容,您可以将其作为POST请求的结果发送回去,检查状态代码而不是作为成功指示器处理,并将内容类型为text/HTML的结果附加到容器中

或者,您可以将带有状态标志的JSON对象和HTML内容作为单独的属性发送回

为了简单起见,我倾向于使用状态代码作为成功指示器,这意味着您可以简单地附加从服务器收到的响应

确保返回的内容是一个完整的页面,而不是一个假定为完整页面的视图结果,这样它就不会包含布局(如果有)

您需要将friendUser作为参数添加到您的请求中,除非它可以从您现有的请求参数之一派生或推断出来

编辑

如果您不愿意或不能更改API端点,尽管您应该能够使用和/或重载以及附加参数来区分现有的返回行为和新的HTML响应,在建立正确的处理之后,您需要在第一个成功回调中发出第二个AJAX请求,将friendUser作为URL的一部分或作为参数传递。这可能是一个GET请求,并且需要一个控制器操作来从您的操作返回HTML。假设它是某种状态或配置文件小部件,它可能是服务器缓存的理想候选。考虑到您将有两个HTTP连接的延迟,并且要处理的初始POST请求的处理,您将希望尽快创建并返回小部件


我还建议在这里返回一个PartialView,并将当前位于该视图中脚本标记中的HTML放置在该视图中,然后使用来自模型/视图的friendUser数据将该操作呈现在该视图中的适当位置。从控制器操作传来的数据。

您将客户端逻辑与服务器端模板相混合。这永远都不起作用。谢谢你,我将更改代码尝试此id=friendUser