[英]MVC3 URL as parameter
我想创建一个接收 URL 作为参数的 MVC 应用程序。 如何做到这一点?
我尝试了第一个选项,但仍然无法接收像http://website/controller/method/http://otherurl.com 这样的 URL
我是否必须创建一条新路线才能实现这一目标?
感谢大家。
我建议您使用查询字符串参数,并确保该值是正确的 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"
...
}
URL由两部分组成,第一部分是域(我认为),这里重要的是第二部分,称为查询字符串。 (第一部分是强制性的,第二部分不是)。
这是一个例子:
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
你还必须编码你的 URL,所以,
http://website/controller/method/http://otherurl.com
会成为
http://website/controller/method/http%3A%2F%2Fotherurl.com
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.