2014-03-07 39 views
0

我有一個顯示在視圖上的模型列表。說他們是任務列表。該列表中有一個檢查按鈕,可以檢查任務是否完成。我希望他們一次更新數據庫。我會怎麼做?更新數據庫模型列表ASP.NET MVC 5

這裏是我的控制器看起來像:

public async Task<ActionResult> TaskManager(Tasks model, string id) 
    { 
     var user = await UserManager.FindByIdAsync(id); 
     var list = from task in context.Tasks.Where(t=> t.isAssigned == false) 
        select task; 

     foreach(var t in task) 
     { 
      t.isAssigned =(bool) // FROM EACH LIST ITEM IN THE VIEW ; 
     } 

     await context.SaveChangesAsync(); 
     return View(); 

    } 

回答

1

按鈕,其中一個可以檢查任務完成。我想讓他們在 上更新一次數據庫。我會怎麼做?

你看錯了地方。這不是通過做「正常」的MVC,而是通過使用Ajax。

用戶按下複選框後,會對不會返回HTML頁面但超過200的Api方法(REST方法)進行回調 - 確定。它獲取ID作爲參數並更新數據庫中的任務。就在那裏,價值改變時立即。

基本上,如果您想對複選框更改做出反應,您必須這樣做 - 並且效率低下且刷新整個頁面的速度很慢。這就是爲什麼微軟在很多年前發明了Ajax(之前有人甚至提出了這個詞)。它得到很好的支持。

這是你必須爲我們中的某些人寫出不完全甜蜜的蘋果,並學習一些JavaScript/JQuery在瀏覽器中運行的時刻。上個星期,這不是很難;)

+0

非常感謝您的評論。 :) –

+0

我在想AJAX可以派上用場,但我想我可能會在服務器上使用循環寫一個用戶點擊提交按鈕。我會嘗試使用Ajax,我希望它能工作。 :) –

+1

問題是,這意味着按下提交按鈕 - 這是違揹你所要求的(當值改變時立即)。當你學習Ajax時,還要學習jquery部分 - 很難進入,但非常方便。我開始在網站上做更多更小的處理。 – TomTom