Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以给MVCAJAX回调一个参数吗?_Javascript_Ajax_Asp.net Mvc 3_Parameters_Callback - Fatal编程技术网

Javascript 我可以给MVCAJAX回调一个参数吗?

Javascript 我可以给MVCAJAX回调一个参数吗?,javascript,ajax,asp.net-mvc-3,parameters,callback,Javascript,Ajax,Asp.net Mvc 3,Parameters,Callback,例如,当我点击这个ActionLink时,javascript“Update”方法将在回调后被调用 由于这个ajax链接存在于许多不同的拍卖中,每个拍卖都有自己的计时器,因此我需要能够告诉更新方法运行哪个拍卖 因此,如果您可以告诉我如何向Update方法传递一个参数,那么我可以解决其余的问题 谢谢你抽出时间 编辑: 根据两个答案的建议,我尝试运行以下程序: @Ajax.ActionLink("Pujar", "BidOnSmallAuction",

例如,当我点击这个ActionLink时,javascript
“Update”
方法将在回调后被调用

由于这个ajax链接存在于许多不同的拍卖中,每个拍卖都有自己的计时器,因此我需要能够告诉更新方法运行哪个拍卖

因此,如果您可以告诉我如何向Update方法传递一个参数,那么我可以解决其余的问题

谢谢你抽出时间


编辑:

根据两个答案的建议,我尝试运行以下程序:

   @Ajax.ActionLink("Pujar",
                    "BidOnSmallAuction", 
                    "Auctions",
                    new { id = @item.UniqueIdentifierID },
                    new AjaxOptions { UpdateTargetId = "divright" + item.UniqueIdentifierID, InsertionMode = InsertionMode.Replace, OnSuccess = "Update" },
                    new { @class = "btn primary" })
...
new AjaxOptions { UpdateTargetId = "divright" + item.UniqueIdentifierID,
    InsertionMode = InsertionMode.Replace,
    OnSuccess = "function() { Update(" + item.UniqueIdentifierID + "); }" },
...

未调用警报消息。有什么想法吗?

您可以尝试以下方法:

//Just for testing purposes.
function Update(uniqueDivId) {
    alert(uniqueDivId);    
} 

//And in the view's code:

@Ajax.ActionLink("Pujar",
                 "BidOnSmallAuction",
                 "Auctions",
                 new { id = @item.UniqueIdentifierID },
                 new AjaxOptions { UpdateTargetId = "divright" + item.UniqueIdentifierID,               
                                   InsertionMode = InsertionMode.Replace, 
                                   OnSuccess = "function() { Update(3); }" },
                 new { @class = "btn primary" })
这样OnSuccess本身调用一个没有参数的函数,但该函数又知道如何使用参数调用Update()。您应该能够根据需要使用字符串连接来设置参数(类似于对
UpdateTargetId
所做的操作),例如:

@Ajax.ActionLink(
   "Pujar",
   "BidOnSmallAuction",
   "Auctions",
   new { id = @item.UniqueIdentifierID },
   new AjaxOptions { UpdateTargetId = "divright" + item.UniqueIdentifierID,
                     InsertionMode = InsertionMode.Replace,
                     OnSuccess = "function() { Update(someParam); }" },
   new { @class = "btn primary" }) 
更新:

哦,抱歉,看起来它只需要函数名作为字符串,我以为它需要函数的引用

能否在现有代码的同时在页面上动态包含其他脚本?如果是这样,请将上述内容更改为
OnSuccess=“UpdateProxy”
,然后动态输出以下内容:

   @Ajax.ActionLink("Pujar",
                    "BidOnSmallAuction", 
                    "Auctions",
                    new { id = @item.UniqueIdentifierID },
                    new AjaxOptions { UpdateTargetId = "divright" + item.UniqueIdentifierID, InsertionMode = InsertionMode.Replace, OnSuccess = "Update" },
                    new { @class = "btn primary" })
...
new AjaxOptions { UpdateTargetId = "divright" + item.UniqueIdentifierID,
    InsertionMode = InsertionMode.Replace,
    OnSuccess = "function() { Update(" + item.UniqueIdentifierID + "); }" },
...

函数UpdateProxy(){
更新(/*在此处插入item.UniqueIdentifierID或其他参数*/);
}
如果页面上同时有多个ajax链接,则需要有
UpdateProxy 1()、UpdateProxy 2()
等等。

可以试试吗

<script>
function UpdateProxy() {
   Update(/* insert your item.UniqueIdentifierID or other params here */);
}
</script>

这是一个很好的建议,乍一看似乎是可行的,但不幸的是,在回调中没有调用Update方法。这正是我页面上呈现的HTML:
data ajax success=“function(){Update(3);}”
-还有其他建议吗?我已经用我能想到的唯一其他建议更新了我的答案。我以前没有遇到过这个问题,因为我没有使用您正在使用的@Ajax.ActionLink方法:我倾向于通过包含一些jQuery来完成Ajax工作,这样我就可以完全控制,而不用担心生成什么或不生成什么。是的,这似乎是可行的,但是在回调期间没有调用Update方法。即使在调用
Update(3)
而不连接参数时,也不会调用该方法。有什么想法吗?