2009-06-23 15 views
5

將JSON數據綁定到HTML UI時,是否可以避免在客戶端上出現'NULL'蜇傷?如何在客戶端綁定JSON數據時避免'null'字符串

我正在使用ASP.NET MVC + jQuery + jTemplates。數據來自linq-to-sql類,並且這些類具有相當多的可空屬性。當這樣的性能得到序列化和傳輸回客戶端我結束了這樣的JSON:

[{"Id":1,"SuitId":1,"TypeId":null,"Type":null,"CourtId":null,"Court":null}] 

乳清我綁定此數據爲HTML我有很多「NULL」字符串。我試過手動綁定和JavaScript模板引擎(jTemplate)。結果是一樣的。 目前我的「合併」的空值處理這個問題如下:

$('#Elem').val(someVar||''); 

但我不想做手工。

請指教,如果我:

  1. 可以自動轉化爲空的屬性由兩種調整序列化過程或可能選擇第三方JSON序列在.NET JSON序列爲空字符串。
  2. 可以在客戶端做任何事情,比如用jQuery或模板引擎解決這個問題。

謝謝。

回答

1

我傾向於問自己在什麼時候數據不正確?當它應該專門分配爲''(空字符串)時,說TypeId爲空(未知,未分配)是不正確的?

在這種情況下,我猜不是,什麼是不正確的演示文稿顯示「null」的方式,你只需要一個空的文本框或一些這樣的事情。在這種情況下,它的演示問題將數據轉換爲可接受的視圖,即它的工作。因此你對「聚結」的使用對我來說似乎是正確的。

當然這可能是一個過於嚴格的解釋,可能不像你想的那樣務實。但從長遠來看(我的意思是在代碼的生命週期中),通常最好保持事情的正確性,因爲它們可以實踐。

3

通過修改jquery.jtemplate.js中的下列代碼行,可以修改jtemplate以返回空字符串而不是null。

首先找到這個函數

TemplateUtils.cloneData = function(d, filter, f_escapeString) { 

的代碼就在第二天塊是if語句

if (d == null) { 
    return d; 
} 

修改,要

if (d == null) { 
    return ""; 
} 

而且應該這樣做

+0

不錯的工作,很聰明。爲我省下了很多努力。 – Gregory 2010-02-18 08:18:52

0

只適用於jTemplates,這是我做的:

{#if $T.mylist.nullableProperty != null}{$T.myList.nullableProperty}{#/if} 
相關問題