如何将选定列表项的字符串值参数从自动填充的下拉列表传递到MVC 4中的部分视图控制器?

我在MVC 4 Web应用程序上创建了一个自动填充的下拉列表。 当用户从下拉列表中选择一个项目时,我希望局部视图显示所选项目,而不是已显示在此局部视图中的所有项目。 如何将所选列表项的字符串值参数从自动填充的下拉列表传递到局部视图控制器? 以下是我自动填充的下拉列表的代码:

@foreach (var m in ViewDatamodel) { if (m.State == "In Work") { 
  • @m.TargetName
  • } }

    我想传递m.TargetName字符串作为参数,以便我可以根据选择的列表项来操作partialview。 部分视图包括正在执行的作业的进度条,其中数据存储在SQL Server DB上。 我使用以下Ajax脚本每3秒刷新一次原始局部视图。 我需要能够对选定的部分视图执行相同的操作。 同样,这都是自动填充的,所以我假设最好的方法是通过TargetName:

       function loadpartialView() { $.ajax({ url: '@Url.Action("_GetfoeStatus', "Status")', type: 'POST', data: '{}', //I am assuming that I will need to pass the parameter to here cache: 'false', async: 'true', success: function (result) { $('#progress').html(result); } }); } $(function() //..... Refresh Timer 

    Action和RenderAction方法都有重载,允许您传递附加到资源的查询字符串的其他参数。

    如果您在服务器端执行此操作,则可以:

     Html.RenderAction("_GetForStatus", "Status", new { TargetName = m.TargetName }) 

    如果你在客户端这样做,你将不得不写一些额外的jQuery来使它工作(或只是普通的旧Javascript)。

     function loadpartialView() { $.ajax({ url: '@Url.Action("_GetfoeStatus', "Status")', type: 'POST', data: { TargetName: $("#YourDropDown").val() } cache: 'false', async: 'true', success: function (result) { $('#progress').html(result); }}); } 

    我使用“TargetName”因为我不知道你的参数名是什么。