2010-02-15 22 views
0

讓我首先從用戶的角度概述我的目標,然後在我不得不實現這個目標的代碼中,我應該從MVC返回什麼類型的ActionResult我要JavaScript來重定向還是更新div?

我希望用戶能夠點擊一個按鈕,它會彈出一個jQuery模式樣式的對話框,其中有幾個字段和一個submit + cancel按鈕。當他們成功提交記錄時,我希望將用戶重定向到/ Records/CustomList/- 但如果出現錯誤,我希望更新模式的div的內容以顯示ModelState錯誤我添加並返回。

我的問題是,因爲我想告訴我的clientside javascript根據行動的結果應該做什麼,我應該從我的ActionResult方法返回什麼類型?我在想一個JSON對象有兩個字段,類型和數據,所以我可以寫這樣的JS這樣的

if(ret.Type == 1) { 
    window.location(ret.Data); 
} 
else { 
    ('#modalDiv').html(ret.Data); 
} 

這是一個很好的方法嗎?我應該先檢查一下不同的選項?

回答

1

聽起來是正確的。

{ 
    type : 1, 
    href : 'uri-to-redirect-to', 
    errormessages : ['error1','error2'] 
} 

而JavaScript可以像這樣

if(ret.type === 1){ 
    window.location(ret.href); 
}else{ 
    //add error messages to modalDiv 
} 

另外,不要使用:但是,如果你返回一個JSON對象,看起來更像是這個代碼可能會得到更可讀的一點點==運算符。 if(ret.type == true)將評估爲與if(ret.type == 1)相同。在這種情況下,這可能並不重要,但爲了將來的參考,請遠離==運算符,除非您絕對肯定要使用這種功能。

+0

我實際上想要傳遞'data'字段中的整個PartialView,而不僅僅是錯誤消息。我喜歡將html和url分離到字段的想法。 – Nate 2010-02-15 16:51:38

相關問題