asp.net-mvc – 如何链接到将数组作为参数(RedirectToAction和/
发布时间:2020-12-16 09:57:39 所属栏目:asp.Net 来源:网络整理
导读:我有一个像这样定义的动作: public ActionResult Foo(int[] bar) { ... } 像这样的网址将按预期工作: .../Controller/Foo?bar=1bar=3bar=5 我有另一个动作做了一些工作,然后重定向到上面的Foo动作的一些计算值的bar. 有没有一种使用RedirectToAction或Acti
我有一个像这样定义的动作:
public ActionResult Foo(int[] bar) { ... } 像这样的网址将按预期工作: .../Controller/Foo?bar=1&bar=3&bar=5 我有另一个动作做了一些工作,然后重定向到上面的Foo动作的一些计算值的bar. 有没有一种使用RedirectToAction或ActionLink指定路由值的简单方法,以便像上面的示例一样生成url? 这些似乎不起作用: return RedirectToAction("Foo",new { bar = new[] { 1,3,5 } }); return RedirectToAction("Foo",new[] { 1,5 }); <%= Html.ActionLink("Foo","Foo",5 } }) %> <%= Html.ActionLink("Foo",5 }) %> 但是,对于数组中的单个项,这些可以工作: return RedirectToAction("Foo",new { bar = 1 }); <%= Html.ActionLink("Foo",new { bar = 1 }) %> 将bar设置为数组时,它会重定向到以下内容: .../Controller/Foo?bar=System.Int32[] 最后,这是ASP.NET MVC 2 RC. 谢谢. 解决方法
有几种方法可以做到这一点.如果你想保持无状态,请避免使用
TempData并创建一个动作过滤器. 像这样的东西: ActionFilter: public class BindArrayAttribute:ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { var keys = filterContext.HttpContext.Request.QueryString.AllKeys.Where(p => p.StartsWith("id")); var idArray = new int[keys.Count()]; var counter = 0; foreach (var key in keys) { var id = filterContext.HttpContext.Request.QueryString[key]; idArray[counter] = int.Parse(id); counter++; } filterContext.ActionParameters["id"] = idArray; base.OnActionExecuting(filterContext); } } 控制器: [HttpPost] public ActionResult Index(ItemModel model) { var dic = new RouteValueDictionary(); var counter = 0; foreach (var id in model.SelectedItemIds) { dic.Add("id" + counter,id); counter++; } return RedirectToAction("Display",dic); } [HttpGet] [BindArray] public ActionResult Display(int[] id = null) { return View(id); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 使用带有剃刀的html选择框
- asp.net-mvc-3 – 在ASP.NET MVC3中使用pdf.js.
- ASP.Net(IIS 7.5)查询没有用户凭据的Active Directory
- entity-framework – 未找到Entity Framework数据提供者,en
- asp.net – 在编辑视图中持久保存实体密钥的更安全的方法?
- asp.net – 使用字符串列表绑定GridView
- asp.net – ‘InitializeCulture’不是其成员
- 使用ApplicationHost.CreateApplicationHost()创建Asp.Net帖
- asp.net-mvc – MVC发布IPagedList
- asp.net – 更新面板PostBackTrigger,更新进度不显示
推荐文章
站长推荐
- asp.net-mvc – FluentValidation可以做复选框吗
- asp.net core中使用EF Core自动生成表的Id主键
- asp.net-mvc – html属性中的Razor语法
- asp.net – 浏览器缓存(.js文件)存在多长时间
- asp.net-mvc – 为什么DropDownListFor会在提交后
- ASP.NET linkbutton两次提高onBeforeUnload事件
- asp.net – 用户角色 – 为什么不存储在会话中?
- 在asp.net控件的style属性中使用DataBinder.Eval
- ASP.NET MVC中将数据从Controller传递到视图
- 在ASP.Net中如何做一个搜索表单?
热点阅读