2016-12-20 76 views
0

我試圖在點擊按鈕時完成待辦事項,因此將其從列表中刪除。參數字典包含參數的空條目

我使用該按鈕的ActionLink的:

@foreach (var item in Model) 
{ 
    <li class="@item.Priority"> 
     @item.Text 
     <div class="agile-detail"> 
     @Html.ActionLink("Done", "Complete", "Home", new { id = item.ToDoId }, new { @class = "pull-right btn btn-xs btn-primary" }) 
     <i class="fa fa-clock-o"></i> @item.Date 
     </div> 
    </li> 
} 

並在控制器的處理很短的行動:

public ActionResult Complete(int todoId) 
     { 
      using (var db = new KnightOwlContext()) 
      { 
       DashboardHelper dashboardHelper = new DashboardHelper(db); 

       dashboardHelper.CompleteToDo(todoId); 

       return RedirectToAction("Index", "Home"); 
      } 
     } 

單擊該按鈕生成的URL:

http://site/Home/Complete/1

我查了一個解決方案,迄今它看起來可能是任何數量的問題。此外,動作鏈接按鈕是在一個局部視圖,所以我不知道這是否改變了不正確的路由設置方面的任何東西?對於路由,我只是使用Visual Studio中MVC項目的默認配置。

只是有問題縮小問題的原因,所以首先檢查哪裏?

回答

1

您的方法中的參數是int todoId,但您沒有爲此傳遞任何值 - 您只能爲名爲id的參數傳遞一個值。

更改方法

public ActionResult Complete(int id) 

或更改鏈接使用new { todoId = item.ToDoId },但將增加查詢字符串值,而不是一個路線值,除非你創建一個特定的路由定義與url: "Home/Complete/{todoId}"

相關問題