我如何创建一个像stackoverflow一样的页面

时间:2013-08-13 04:26:18

标签: asp.net webmethod

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

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

3 个答案:

答案 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