2015-10-06 52 views
0

我試圖執行ajax POST時,單擊引導面板標題。這篇文章正在填充我的視圖模型。我只想在Model.OrdersInEvaluation爲空時纔會發生此事件,因此每次點擊標題時都不會發布帖子。所以,我想剃刀和JavaScript結合:有條件地執行JavaScript如果MVC模型爲空

<script> 
@if (Model.OrdersInEvaluation == null) 
{ 
    <Text> 
    $("#evaluation-panel-heading").click(function() { 
     $.ajax({ 
      url: '@Url.Action("EvaluationOrders", "Home")', 
      type: 'POST', 
      success: function(data) { 
       if (data) { 
        $("#evaluation-panel-body").html(data); 
       } 
      } 
     }); 
    }); 
</Text> 
} 
</script> 

我知道Model.OrdersInEvaluation被填充,因爲在我看來,表正用它填充在Ajax調用。我錯誤地使用<text>?或者在代碼中可能會出現另一個錯誤,每次單擊它時都會執行該錯誤?

+0

它可能是更容易了'數據'屬性添加到您的元素指示當值如果爲null(比如' data-exists =「@ Model.OrdersInEvaluation」',然後在腳本中使用'if(!$(this).data('exists'){return;} $ .ajax(...'以便ajax調用從來沒有做過,如果該屬性存在 –

+0

你的語法沒有什麼不妥,如果#evaluation-panel-heading元素存在於視圖中,點擊事件應該會觸發。你確定嗎? –

+0

我確定模型正在填充?它正在發射,但問題在於它每次都會發射,即使在模型已經填充之後。 – cfly24

回答

0

我沒有辦法目前測試這一點,但我認爲:

這部分運行在服務器端,當你第一次加載頁面只呈現。它不會隨着你的ajax調用而更新。

也許你可以檢查$("#evaluation-panel-body"),看它是否是空的(在爲你工作的情況下)