使用多个参数在JQuery中调用Url.Action

时间:2013-10-22 11:04:28

标签: c# jquery

我正在尝试使用Url.Action调用控制器c#函数:

public ActionResult Setup(string ID, string Definition)

此函数位于控制器类MachineController.cs中,它返回一个PartialView。

所以,在我的脚本中,我试图用以下行调用函数'Setup':

var selected = $('#dropselector').find(':selected').text();

$.get('@Url.Action("Setup", "Machine", new { ID = @Model.ID , Definition = "_holder"})'.replace("_holder", selected), function (data) {
     $('#MachineSetup').replaceWith(data);
});

似乎发生的是第一个参数(ID)传递没问题,但第二个参数(Definition)总是空字符串。我甚至尝试将“定义”分配给@ Model.ID与ID字段相同,因为它们都是字符串,但它似乎导致相同,ID被填充但是Definition是一个空字符串。

问题肯定与第二个参数的传递有关,是什么想法?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下

var selected = $('#dropselector').find(':selected').text();

$.get(
   '@Url.Action("Setup","Machine", new { ID = @Model.ID })',
   {
     data:{definition:selected}
   } , 
   function (data) 
   {
       $('#MachineSetup').replaceWith(data);
   });

因为网址将包含Model.ID,但所选的动态值将会更改。

如果您正在执行Setup,则不会考虑POST操作以确保不会在客户端计算机上缓存这些值。