如何将筛选后的列表传递到操作参数ASP.NET MVC
嗨,我有一个WebGrid,有两列: 1-名称如何将筛选后的列表传递到操作参数ASP.NET MVC,asp.net,asp.net-mvc,asp.net-mvc-3,razor,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Razor,嗨,我有一个WebGrid,有两列: 1-名称 2-绑定到另一个控制器操作的操作。一按我就会 对于该操作,参数应该是List 项目 输出: 请求转到控制器,但参数为空collection,是否缺少任何内容 视图: @model IEnumerable @{ var grid=new WebGrid(ajaxUpdateContainerId:“testGrid”,canSort:true); 网格绑定(模型); @MvcHtmlString.Create( @grid.GetHtml( 列:gr
2-绑定到另一个控制器操作的操作。一按我就会 对于该操作,参数应该是
List
项目
输出:
请求转到控制器,但参数为空collection,是否缺少任何内容
视图:
@model IEnumerable
@{
var grid=new WebGrid(ajaxUpdateContainerId:“testGrid”,canSort:true);
网格绑定(模型);
@MvcHtmlString.Create(
@grid.GetHtml(
列:grid.columns
(
grid.Column(Html.DisplayNameFor(model=>model.Name).ToHtmlString(),
标题:Html.DisplayNameFor(model=>model.Name).ToHtmlString()),
grid.Column(“操作”,标题:“操作”,格式:@)
)
).ToString()
)
}
控制器代码
列表将为空
public ActionResult LoadTest(List<Test> testItems)
{
//...test code.
}
public ActionResult负载测试(列表测试项)
{
//…测试代码。
}
您的Url。操作正在创建一个不同于控制器预期的变量:
或者将您的行动从配料改为测试:
grid.Column("Action", header: "Action", format: @<a href="@Url.Action("LoadTest", "NewController",
new
{
testItems = Model.Select(t=>t.Id==@item.Id).ToList()
}
对不起,我没有使用这里的路线。
grid.Column("Action", header: "Action", format: @<a href="@Url.Action("LoadTest", "NewController",
new
{
testItems = Model.Select(t=>t.Id==@item.Id).ToList()
}
public ActionResult LoadTest(List<Test> ingredients )
{
//...test code.
}
routes.MapRoute(
"Test route", // Route name
"NewController/{action}/{testItems}", // URL with parameters
new { controller = "NewController", action = "LoadTest" } // Parameter defaults
);