Asp.net如何知道要生成哪个页面?

时间:2011-08-19 06:30:32

标签: asp.net html

当客户在A.aspx页面上时,他按下某个按钮就会有回发。

服务器根据请求知道要重建的页面。

但客户如何知道要重新询问的页面?通过他浏览器的当前网址?

这些信息保存在客户端?

3 个答案:

答案 0 :(得分:2)

它在action的{​​{1}}属性中定义。客户端不需要重新询问,服务器发送他的请求的响应。

答案 1 :(得分:2)

ASP.NET只是.NET框架的一部分,但每个客户端都使用普通的旧HTML在Web浏览器上看到。

ASP.NET为您提供了几个控件,可以轻松地以编程方式使用它们,因此我们可以在代码中设置所有类型的东西(在页面显示之前运行)以完全按照我们的要求进行操作。

每个链接,按钮,图片,网格,它只是HTML标记,例如<a>表示链接,<input type="button">表示按钮等...

请记住,现在,有两个ASP.NET的变体,WebFormsMVC(您还可以阅读choosing one in prole of the other

在每个 ASP.NET WebForms 中,<form>的开头总是有一个<body>并且包含了你的所有代码,因此,任何提交都会将PostBack转换为在您的示例A.apsx中,相同的文件名将始终发布到A.aspx,然后如果您愿意,请将该请求发送到B.aspx,您需要Click Event这将使用Server.Transfer("B.aspx")并将整个帖子重定向到B.aspx,就像来自B.aspx

的帖子一样

在最新模式中, ASP.NET MVC ,它使用Routes驱动,让您设置任意,每一个,多个方式来访问同一页面。在MVC中,URL不指向特定的页面,而是指向特定的Controller,并且由Controller在处理数据之后发送到特定的View,这就是为什么在MVC中url中没有页面(尽管如果需要,可以将其添加到路由中,并且可以使用路由插件完成相同的WebForms。

现在,在MVC中没有<form>包裹整个代码,如果你想提交一些东西,你需要创建自己的<form>和点到正确的route

但是,就像在Webforms或任何HTML页面中一样,帖子是通过form submittion制作的,而它的“路径”总是在表单属性action中是什么让你知道下一步是什么。

我希望这可以帮助你意识到ASP.NET中没有大怪物,这只是一种重用控件并以编程方式访问它们的方法,最后,它都是HTML:)

答案 2 :(得分:1)

一般答案:在客户端,它是表单或链接中的提交。

表单指向相对URL(表示当前URL起关键作用)或绝对URL(当前URL几乎不起作用)。

对于链接,它通常是相同的:它们是相对的还是绝对的。一个很大的区别:链接使用HTTP GET,而表单可以使用HTTP POST(因此传输更多数据而不将它们编码为URL作为参数)。

对于按钮,它是提交的表单。