2012-06-02 32 views
2

我有一個.aspx頁面,我試圖渲染,但是當我去渲染字符時,我得到了奇怪的結果。ASPX空字符錯誤

<%= default(char) %> 

擴展到在FF和Chrome下,但不是在IE:

有沒有辦法忽略的價值,如果它是空字符?我試過default(char).ToString(),但它似乎有相同的結果。當有一個空字符時,我只是想忽略它。

+0

我認爲我們可以幫助更好,如果你顯示你真正的代碼 –

+0

這是我真正的代碼,嘗試把正是成.aspx頁面並使用FF或Chrome查看。 –

+0

那麼意圖是什麼? –

回答

3

char的默認值是\ 0,或者它與null等效,但實際上不是System.Null值,因此行爲與預期相同。

如果你想避免這種測試:

<%= mychar != '\0' ? mychar : '' %> 

要記得使用單引號字符是非常重要的。

我的擔心是這樣做很長,你在你的主代碼中究竟想要做什麼?

編輯:爲了給一個代碼示例在我的評論轉述修復:

<%= myobj.charProp == '\0' ? "''" : myobj.charProp.ToString() %> 
+0

我想打印出一個對象的char屬性,但如果它沒有被初始化,就忽略這個char。我正在創建一個JavaScript字符串,所以如果我可以在obj.Prop =='n''時打印''''obj.Prop == default(char)'和''n'',那將會很好。 。 –

+0

啊好的,所以像<%= myobj.charProp =='\ 0'? 「''」:myobj.charProp.ToString()%>;我已經在上面的答案中加入了這個;你需要在第三級或編譯器兩邊都有一個字符串。 –

+0

我很好奇什麼樣的對象有一個char屬性,有沒有特別的原因,或者你想節省空間,還是來自某種互操作? –