我知道你可以通過像.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