2010-02-02 53 views
2

只是想知道人們怎麼想創建一個區域來保存/管理基於json的請求(注意我主要是想獲取數據而不是發佈數據)。我知道它不是你對一個區域的典型使用(也就是說,通常你會爲博客和論壇創建一個不同的區域),但我已經到了我的項目並不龐大的地步,但我肯定有很多json的東西,似乎混淆這個問題,並讓事情看起來「不潔淨」。ASP.Net MVC:爲json請求創建一個區域

例如,在每個控制器的底部是我放置json動作的地方,以便它們不會與其他動作混淆在一起,我用json作爲它們的前綴 - 我不應該這樣做。 。我也有json的具體視圖模型,我必須以json作爲前綴,等等等等。

將它們放在自己的區域並能夠刪除json前綴所有在一起,並有該地區定義......你認爲或者這是一個壞主意?

乾杯 安東尼

回答

1

我認爲這是一個好主意。擁有一個異步區域,所有控制器只實現異步操作,將清理你的代碼。當你的項目變得如此龐大以致你想要擴展到常規領域時,問題就會出現,那麼最終會出現一些可能最終會變得混亂的命名約定。

+0

在這一點上,我不認爲該項目將達到這樣的規模,但我確實看到了你的觀點。 – 2010-02-02 23:59:51

0

你也可以爲你的json動作創建一個單獨的控制器。我認爲這比創建一個區域更有意義。你需要json特定的視圖,內容,模型等還是隻需要一些異步操作?

+0

我沒有不同的看法,但我有不同的內容和模型......它不僅僅是異步的。 – 2010-02-02 23:58:59

0

我認爲創建單獨的區域甚至單獨的操作並不是什麼新鮮事。如果這些操作返回相同的數據,並且僅在請求類型方面有所不同 - ajax或非ajax,則可以檢查請求是什麼並使用相應的數據格式。

public ActionResult Index() 
{ 
    MyViewModel model = DataAccess.GetMyViewModel(); // Data access code 
    if (Request.IsAjaxRequest()) 
    { 
     return Json(model); 
    } 
    else 
    { 
     return View(model); 
    } 
} 
+0

我希望這是簡單的,但在很多情況下,爲json版本返回的模型是不同的,並且通常使用的上下文也不相同,從而使json方法在語義上與其對應的get方法不同。 – 2010-02-02 23:57:38

+0

然後,您可以檢查該方法是否使用ajax進行處理,並且如果沒有返回一條消息,指出只能使用ajax調用該消息。根據返回類型命名方法並不是一個好習慣。 – 2010-02-03 07:56:00