我知道你可以通过像.com/MyPage/?controlID=5
这样的网址传递参数,但是你怎么用.com/MyPage/5
这样的东西来做呢?因此不需要变量名称或问号。使用MVC通过url传递参数?
1
A
回答
5
工作,你需要定义一个定制的路线,或使用模型绑定,以获得预期的效果。在你的情况,该路线将是这样的:
routes.Add("someRoute",
"{controller}/{action}/{controlId}",
new { controller = "Home", action = "Index", controlId = UrlParameter.Optional }
);
public ActionResult Index(int? controlId)
{
}
现在,唯一的“疑难杂症”与这条路线是,如果你也有指定的默认路由,这两条航线将成为争夺,第一个你已经定义了会赢。如果存在某种形式的差异化值(比如,controlId总是匹配某种模式),那么您总是可以向路由添加HttpRouteConstraint以区分新路由和默认路由。
或者,你可以在你的操作方法,重命名参数,如果你仍在使用默认路由,是id
,并更改您的查询字符串键“ID”:
public ActionResult Index(int? id)
{
// Do Stuff
}
2
在MyPageController创建方法:
public ActionResult Index (int id)
{
}
将与默认路由
+0
我想,和它的工作原理,但仅限于需要输入变量名称和问号的方式,是否可以在没有这些的情况下执行? – Smoore
相关问题
- 1. 通过url传递参数
- 2. 通过url传递参数
- 3. 通过url传递参数?
- 4. 通过URL传递参数
- 5. 通过调用URL传递JavaScript参数
- 6. 在ASP.NET MVC应用程序中通过URL传递参数
- 7. SSRS传递参数通过URL
- 8. 通过url将参数传递给bookmarklet
- 9. 通过OnSuccess回调传递Url参数
- 10. 在CodeIgniter中通过URL传递参数
- 11. Android:通过url传递参数
- 12. 通过URL传递0作为参数
- 13. Codeigniter GET参数不通过url传递
- 14. 验证通过URL传递的参数
- 15. 在JSF中通过URL传递参数
- 16. 如何不通过URL传递参数?
- 17. 通过使用CallNonvirtualVoidMethod传递参数
- 18. 使用javascript通过URL将参数传递到PHP文件
- 19. 无法通过URL传递参数使用<c:url>标签
- 20. 如果通过URL参数传递,使用jQuery显示div
- 21. 将参数传递给URL ASP.NET MVC
- 22. ASP.Net MVC:传递参数为URL
- 23. 在参数MVC中传递URL 4
- 24. MVC传递参数与url分开/
- 25. 通过ICommand传递参数
- 26. 通过server.execute传递参数?
- 27. 通过传递参数
- 28. 传递参数通过powershell.exe
- 29. 通过Ajax传递参数
- 30. 通过PageFactory传递参数
这工作完美,你是非常彻底和清晰,非常感谢你! – Smoore
有没有一种方法可以设置HttpRouteConstraint来确定像int或string之类的东西,还是它必须是像“POST”或“GET”之类的东西? – Smoore
当然 - 查看[this](http://www.asp.net/mvc/tutorials/controllers-and-routing/creating-a-route-constraint-cs)文章,了解如何制作约束。 – Tejs