MVC 传递 id 以“”“”分隔采取行动
我希望能够通过以下 URL 类型访问操作:
http://localhost/MyControllerName /MyActionName/Id1+Id2+Id3+Id4 等,
并按以下方式在代码中处理:
public ActionResult MyActionName(string[] ids)
{
return View(ids);
}
I want to have possibility to access action by the following URL type:
http://localhost/MyControllerName/MyActionName/Id1+Id2+Id3+Id4 etc.
and handle it in code in the following way:
public ActionResult MyActionName(string[] ids)
{
return View(ids);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
+
是 url 中的保留符号。它意味着空白。因此,为了实现您正在寻找的目标,您可以编写一个自定义模型绑定器:然后将其全局注册为
string[]
类型或使用ModelBinder
属性:显然,如果您想使用表单的 url
/MyControllerName/MyActionName/Id1+Id2+Id3+Id4
会将最后一部分绑定为名为ids
的操作参数,您必须修改使用ids 的默认路由定义代码>{id}。
+
is a reserved symbol in an url. It means white space. So to achieve what you are looking for you could write a custom model binder:and then either register it globally for the
string[]
type or use theModelBinder
attribute:Obviously if you want to use an url of the form
/MyControllerName/MyActionName/Id1+Id2+Id3+Id4
that will bind the last part as an action parameter calledids
you will have to modify the default route definition which uses{id}
.最终选择了以下解决方案:
After all chose the following solution: