我想知道这些网页是如何运作的! 像这样:
https://stackoverflow.com/questions/ask
地址末尾没有扩展名!
这是一种直接调用webmethods的方法吗?! 我写了这个页面,但我认为它不对!
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string name= Request.QueryString["name"];
if (Request.PathInfo == "/SayHi")Response.Write( SayHi(name));
}
[WebMethod]
public static string SayHi(string name)
{
return "Hi " + name;
}
//[WebMethod]
//public static string SayHi()
//{
// return "Hi ";
//}
}
答案 0 :(得分:2)
看看ASP.Net MVC。它是每this other question运行Stack Overflow站点的框架。 MVC使用routing engine来允许不带尾随“.aspx”的网址。
答案 1 :(得分:2)
StackOverflow使用ASP.NET MVC作为其核心Web技术,你没有扩展,因为有一个处理请求的路由引擎。
在你的例子中:
http://stackoverflow.com/questions/ask
这相当于StackOverflow站点调用名为ask
的控制器并根据路由引擎的规则设置显示其默认视图。
阅读ASP.NET MVC Routing Overview以获取有关ASP.NET MVC路由如何工作的更多信息。
更新:
有关最初构建StackOverflow站点的软件和硬件的更多信息,请阅读What Was Stack Overflow Built With?。这通常仍然是正确的,尽管每个硬件和数量的一些可能随着用户群的增加而改变。
答案 2 :(得分:2)
对于ASP.NET
,您可以使用ASP.NET Routing
,这样您就可以单独配置网址的外观。
您可以将其用于regular WebForms apps和较新的ASP.NET MVC。