繁体   English   中英

MVC3 URL 作为参数

[英]MVC3 URL as parameter

我想创建一个接收 URL 作为参数的 MVC 应用程序。 如何做到这一点?

  1. 直接在URL上接收参数?
  2. 创建 Get 和 Post 方法在内部传递 URL 从 Get 一到 Post 一?

我尝试了第一个选项,但仍然无法接收像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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM