2014-04-09 93 views
1

我们(在工作中)有一家设计公司在html5中构建一个静态网站,并且我已经绑定了ASP.Net代码以使其功能正常。 日志在屏幕上有一个这样的形式:如何查看页面源代码与页面渲染不同?

<input class="ui-input-text ui-body-c" id="txtUsername" placeholder="Username&hellip;" value="" runat="server" /> 
<input class="ui-input-text ui-body-c" id="txtPassword" placeholder="Password&hellip;" value="" runat="server" type="password" /> 
<span class="select-decoration submit login"> 
     <input class="submit-button" id="btnLogin" value="Login" type="submit" runat="server" onserverclick="submitbutton_click" /> 
</span> 

...和验证后登录我做的Response.Redirect到“家”屏幕。

我的问题是虽然页面似乎加载,如果你'查看页面源',代码呈现仍然是登录页面,地址栏中的网址仍然是登录页面;并且由于登录处于根目录并且所有内容页都位于'/ v2'子目录中,所以图像的路径都不是有效的,因此不显示任何内容。

奇怪的是,如果您在浏览器中使用'F12'工具,检查的html是正确的html。 IE 10,Firefox和Chrome的这种行为是正确的。

我已经尝试了Response.Redirect的真正和错误的标志(绝大多数是绝望,没有进一步的代码来执行),没有喜悦。

我在这里找到的一切都是指PostBackTriggers,但是我没有使用UpdatePanel,所以没有那里的喜悦。

我确信这与HTML5有关,但它对我来说是新的领域,所以我很挣扎。

回答

1

我假设你并未真正设置cookie或任何其他内容,并且如果在验证完成后刷新主页,则会将其发送回登录页面?如果是这样的话,问题在于,当你'查看页面源代码'时,浏览器实际上并没有给你当前所在页面的HTML。它实际上是再次从服务器获取所有内容,就像普通请求一样,唯一的区别是浏览器现在向您显示HTML而不是呈现它。这也是F12开发人员工具DOM-inspector可以向您显示当前HTML的原因,因为这确实可以实时向您显示当前的HTML。我希望我很清楚,并且我假设正确,但我没有足够高的评价。 :)

+0

正确,我没有设置cookie并刷新主页确实重新加载登录页面。我不确定我是否遵循你所说的关于从服务器再次获取所有html的说法,但是......什么会导致这种行为? – SteveG

+0

简而言之,当您正常加载页面时会发生什么情况,浏览器会向服务器发送获取请求,检索HTML并进行渲染,因此让人们看起来很愉快。当您使用'view-source:'追加地址栏中的网址时(Chrome浏览器在选择'查看网页源代码'时会执行此操作),同样的事情会发生,除非浏览器跳过了最后一步,只是向您显示HTML。所以,当你查看页面源代码时,浏览器并不认为'让我给他显示当前页面的HTML',而是认为'让我们再次获取所有的HTML,从' – Tobias

+0

'得到它的同一个地方谢谢,这就解释了为什么查看源与实际页面不同。我的问题仍然存在,但...为什么Response.Redirect获取新页面,呈现它,但实际上并没有改变网址? – SteveG