第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么<%=%>表達(dá)式作為服務(wù)器控件上的屬性值會導(dǎo)致編譯錯誤?

為什么<%=%>表達(dá)式作為服務(wù)器控件上的屬性值會導(dǎo)致編譯錯誤?

哆啦的時光機(jī) 2019-09-24 09:48:52
這個問題是我在嘗試回答另一個問題時注意到的結(jié)果。現(xiàn)在<asp:TextBox runat="server" Visible="<%= true %>" />我很想知道為什么會導(dǎo)致編譯錯誤,而不是我期望的那樣導(dǎo)致可見的TextBox。從我到目前為止發(fā)現(xiàn)的內(nèi)容來看,這些<%= %>表達(dá)式?jīng)]有像我一直認(rèn)為的那樣轉(zhuǎn)換為文字控件。但是取而代之的是在呈現(xiàn)頁面時對其進(jìn)行評估并直接將其寫入HtmlTextWriter。但是很顯然,當(dāng)解析器<%= %>用作服務(wù)器控件的屬性值時,解析器(我不確定這是將ASP.NET標(biāo)記轉(zhuǎn)換為.NET代碼的部分的正確術(shù)語)甚至沒有嘗試評估表達(dá)式。它只是將其用作字符串。我猜這是我收到錯誤消息的原因:無法從其字符串表示形式'<%= true%>'為'Visible'屬性創(chuàng)建'System.Boolean'類型的對象。如果我改為拋棄runat =“ server”并將其<%= %>與常規(guī)html標(biāo)記合并,如下所示:<input type="button" id="Button1" visible='<%= true %>' />然后,解析器只將塊在表達(dá)式之前和之后拆分,然后將其寫入render方法中的HtmlTextWriter。像這樣:    __w.Write("<input type=\"button\" id=\"Button1\" visible='");    __w.Write(true);    __w.Write("' />");作為我注意到的最后一件事...當(dāng)我嘗試使用<%# %>+ Control.DataBind()時,我得到了期望的結(jié)果。它連接了將控件綁定到數(shù)據(jù)時要使用的表達(dá)式,但與<%=%>表達(dá)式不同,生成的代碼實際上會評估該<%# %>表達(dá)式的內(nèi)容。解析器最終生成以下內(nèi)容:[DebuggerNonUserCode]private Button __BuildControldataboundButton(){    Button button = new Button();    base.databoundButton = button;    button.ApplyStyleSheetSkin(this);    button.ID = "databoundButton";    button.DataBinding += new EventHandler(this.__DataBindingdataboundButton);    return button;}public void __DataBindingdataboundButton(object sender, EventArgs e){    Button button = (Button) sender;    Page bindingContainer = (Page) button.BindingContainer;    button.Visible = true;}從:<asp:Button ID="databoundButton" Visible='<%# true %>' runat="server" />注意,button.Visible = true;這是<%# %>表達(dá)式的結(jié)果。所以我的問題是..為什么第一個示例中的表達(dá)式只是作為字符串處理,而不是被評估為“ true”。對于其他兩個示例,這些表達(dá)式有些相似,并且它們產(chǎn)生我所期望的代碼。這僅僅是一個錯誤(我懷疑這是錯誤,因為它不是當(dāng)前版本的ASP.NET的新問題),還是有充分的理由為什么我們不允許這樣使用<%= %>?
查看完整描述

2 回答

?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗 獲得超4個贊

必須兩次閱讀此答案才能理解要點:直接輸出到響應(yīng)流,并且asp標(biāo)記也不是響應(yīng)流的一部分,<%=true%>也不會出現(xiàn)在<asp:Button visible屬性中,而是無關(guān)緊要的!

查看完整回答
反對 回復(fù) 2019-09-24
  • 2 回答
  • 0 關(guān)注
  • 521 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號