1

我正在尝试使用 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)传递没有问题,但第二个参数(定义)总是空字符串。我什至尝试将“定义”分配给 @Model.ID 与 ID 字段相同,因为它们都是字符串,但似乎结果相同,填充了 ID 但定义是一个空字符串。

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

4

1 回答 1

0

你可以尝试以下

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

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

因为 url 将包含Model.ID但 selected 的动态值会改变。

此外,如果您正在执行一项操作,Setup您是否不会考虑POST采取措施确保这些值未缓存在客户端计算机上。

于 2013-10-22T11:10:31.377 回答