我想創建一個接收URL作爲參數的MVC應用程序。如何實現這一目標?作爲參數的MVC3 URL
- 直接在URL上接收參數?
- 創建Get方法和Post方法在內部傳遞URL從Get一個到Post一個?
我嘗試的第一個選項,但仍無法收到的網址像http://website/controller/method/http://otherurl.com
我一定要創建一個新的途徑實現這一目標?
謝謝大家。
我想創建一個接收URL作爲參數的MVC應用程序。如何實現這一目標?作爲參數的MVC3 URL
我嘗試的第一個選項,但仍無法收到的網址像http://website/controller/method/http://otherurl.com
我一定要創建一個新的途徑實現這一目標?
謝謝大家。
我會使用查詢字符串參數建議你,也確保值正確的URL編碼:
http://website/controller/method?url=http%3A%2F%2Fotherurl.com
和行動中:
public ActionResult Method(string url)
{
// The url parameter here will equal to "http://otherurl.com"
...
}
網址由兩個部分組成,第一部分是域(我認爲),這裏重要的是第二部分被稱爲查詢字符串。 (第一部分是強制性的,第二部分不是)。
這是一個例子:
http://your-domain-here/stuff?page=1
現在page
是一個查詢字符串變量。你必須注意到?
它分開了Url的兩個部分,我沒有在你的URL中看到一個,因此IMO,MVC路由引擎會嘗試將這個整個Url與註冊路由(不會被找到)匹配。
不,我會說,你沒有當我們需要一個新的「路徑」,但在你的情況,你只需要提高URL分開來創建一個新途徑,創建新航線關閉查詢字符串的路由。
希望有所幫助。
你將不得不創建另一條路線, 是這樣的:
routes.MapRoute("UrlByParam", //Route Name
"{controller}/{action}/{url}", //Url Pattern
new { controller = "DefaultController", action = "DefaultAction" }); //Defaults
,你也有編碼您的網址, 所以,
http://website/controller/method/http://otherurl.com
將成爲
http://website/controller/method/http%3A%2F%2Fotherurl.com