我在MVC 4 Web应用程序上创建了一个自动填充的下拉列表。当用户从下拉列表中选择一个项目时,我希望部分视图显示所选项目,而不是已在此部分视图中显示的所有项目。如何将选定列表项的字符串值参数从自动填充的下拉列表传递给局部视图控制器?这是我自动填充的下拉列表的代码:
@foreach (var m in ViewDatamodel)
{
if (m.State == "In Work")
{
<li><a href="@Html.RenderAction("_GetforStatus", "Status" /@* I am assuming that I need to place the TargetName here, but not too sure exactly how *@)">@m.TargetName</a></li>
}
}
我想将m.TargetName字符串作为参数传递,这样我就可以根据选择的列表项来操纵partialview。局部视图由进度条组成,这些进度条用于将数据存储在SQL Server DB上的正在执行的作业。我使用以下Ajax脚本每3秒刷新一次原始局部视图。我需要能够对选定的局部视图执行相同的操作。同样,这都是自动填充的,因此我假设最好的方法是按TargetName进行操作:
<script>
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”是因为我不知道您的参数名称是什么。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句