0

我想知道这些页面是如何工作的!像这样 :

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 ";
        //}
    }
4

3 回答 3

2

看看ASP.Net MVC它是根据其他问题运行 Stack Overflow 站点的框架。MVC 使用路由引擎来允许没有尾随“.aspx”的 url。

于 2013-08-13T04:30:05.450 回答
2

StackOverflow 使用 ASP.NET MVC 作为其核心 Web 技术,您是对的,没有扩展,因为有一个处理请求的路由引擎。

在您的示例中:

http://stackoverflow.com/questions/ask

这相当于 StackOverflow 站点ask根据路由引擎的规则设置调用一个名为并显示其默认视图的控制器。

阅读ASP.NET MVC 路由概述,了解有关 ASP.NET MVC 路由如何工作的更多信息。

更新:

有关 StackOverflow 站点最初构建在哪些软件和硬件上的更多信息,请阅读Stack Overflow 是用什么构建的?. 这通常仍然是正确的,尽管每个硬件和数量可能随着用户群的增加而发生变化。

于 2013-08-13T04:30:43.757 回答
2

对于ASP.NET,您可以使用ASP.NET Routing,这将允许您单独配置 URL 的外观。

您可以将它用于常规 WebForms 应用程序和更新的ASP.NET MVC

于 2013-08-13T04:31:41.123 回答