關(guān)于VS2003軟件出現(xiàn)的種種問題進(jìn)行說明解釋
本文講述如何導(dǎo)入項(xiàng)目,怎樣創(chuàng)建VS2003軟件。這些內(nèi)容都是我今天花花了一周的時間查閱資料并像IT精英學(xué)習(xí)出來的,中間可能有不少錯誤是我沒有挑出的,歡迎大家指正。
而VS2003軟件中,可以建立多個form,但根本就沒有實(shí)際意義,因?yàn)槟銜l(fā)現(xiàn),在客戶端收到的代碼中,依然只有當(dāng)前活動的一個card定義,并且你會看到,生成的wml中,card是沒有id這個屬性的.因?yàn)樗荒苌梢粋€card,因此微軟干脆把card的id這個屬性也給拋棄了,害得我研究半天,怎么來設(shè)定card 的id,氣憤!
而你在服務(wù)器定義的其它form跑哪里去了呢,它還是在服務(wù)器上,如果你當(dāng)前的card中有跳轉(zhuǎn)到其它c(diǎn)ard的代碼,用戶讓它執(zhí)行后,其實(shí)又讓手機(jī)去連接了服務(wù)器,來獲得另外一個card,因此微軟的所謂支持多form,是把我們騙了,與wml制定多card的初衷完全不合.
既然這樣如何解決呢,當(dāng)然就只有不用asp.net的form跳轉(zhuǎn)功能了,用手工輸出wml的方式,向客戶端發(fā)送多card的代碼.這中間就要用到自定義控件,以字符串輸出的方式來輸出wml,并且要欺騙asp.net,讓它輸出多card.注意最終生成的結(jié)果要完全符合wml的標(biāo)準(zhǔn)才行.
感覺微軟的移動web自適應(yīng)功能,反而給開發(fā)者帶來不便,并且自帶的移動控件的兼容性能不能通過移動聯(lián)通的要求,都很成問題.
聽說VS2005是可以實(shí)現(xiàn)多card的輸出,沒用過,不知道情況如何。
有一個項(xiàng)目,是由VS2003軟件轉(zhuǎn)換到VS2005下的,這段時間學(xué)習(xí)了asp.net ajax,感覺還不錯,就想著將其應(yīng)用到部分頁面,MS的東西用著就是簡單,很快就完成,興沖沖地就想看看成果,系統(tǒng)正常啟動了,沒有任何錯誤,誰知在我改變下拉列表的選項(xiàng)時,本來應(yīng)該是UpdatePanel包含的那一塊內(nèi)容刷新,現(xiàn)在變成了整個頁面都刷新了,也就是異步調(diào)用變成了同步調(diào)用。
這是什么原因呢?是我的程序有誤,仔細(xì)對代碼做了檢查,并沒有發(fā)現(xiàn)什么問題?;蛘呤桥渲梦募膯栴},我和其它測試成功的項(xiàng)目配置文件比較,完全相同。
百思不得其解,但明白應(yīng)該是轉(zhuǎn)換時造成的遺留問題。這個問題困擾了我?guī)滋?,在網(wǎng)上也沒有找到答案,前天參加陳黎夫(Dflying Chen)《css禪意花園》新書見面會,也沒有找到明確的答案。
將那個項(xiàng)目應(yīng)用ajax的計(jì)劃只好暫時放棄,但心中又有一些不甘,總想找到問題所在(完美主義者)。開始仔細(xì)比對vs2003軟件和2005項(xiàng)目,終于發(fā)現(xiàn)資源文件AssemblyInfo.cs在vs2005下是沒有的,2005下資源文件放在web.config中,但項(xiàng)目在轉(zhuǎn)換后,仍然保留了這個文件,可能是考慮到有些特殊的配置信息存在,保留下來便于手工調(diào)整。
打開這個文件,除了版本外并沒有寫入其它什么東西,試著把它刪除看看吧,沒想到還真就是這兒的問題,局部刷新的終于效果出來了。
問題是解決了,但道理在哪兒呢?或許正如前面所述,轉(zhuǎn)換工具特意保留了這個資源文件,在2.0的環(huán)境下,發(fā)現(xiàn)存在這個資源文件,就直接從這里讀取信息,結(jié)果保存在web.config中的相關(guān)配置信息反而被忽略了,從而造成異步調(diào)用時無法找到相應(yīng)的資源、ajax失效的情況。
當(dāng)然,我的水平有限,以上原因只是猜測,希望高手指點(diǎn)迷津!