我不知道爲什麼我的操作返回404'無法找到資源'錯誤。 控制器名稱:ItemManagementController 我的索引視圖有一個表中的項目列表。每行包含兩個鏈接,'刪除'和'請求更新'。刪除鏈接調用刪除操作並正常工作。請求更新給我404錯誤,好像試圖導航到像http://localhost/TVAPDev/ItemManagement/RequestUpdate?itemID=9這樣的URL。MVC3路由問題HTTP 404
我不得不假設我錯過了一些簡單的東西,因爲它們在視圖方面的作用是相同的。控制器中定義的動作除了在服務層上調用不同的方法外,都是相似的,但就是這樣。
這是我的兩個控制器操作。
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Delete(int itemID) {
var svc = new ItemManagementService(_repository);
var requestModel = svc.GetItemDeleteModel(itemID);
svc.DeleteItem(requestModel);
var message = requestModel.ActionMessage;
return Json(new { id = itemID, ChangeStatus = requestModel.ItemDetails.ItemChangeStatus.ToString(), ChangeType = requestModel.ItemDetails.ItemChangeType.ToString(), message});
}
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult RequestUpdate(int itemID) {
var svc = new ItemManagementService(_repository);
var requestModel = svc.GetItemUpdateRequestModel(itemID);
svc.RequestItemUpdate(requestModel);
var message = requestModel.ActionMessage;
return Json(new { id = itemID, ChangeStatus = requestModel.ItemDetails.ItemChangeStatus.ToString(), ChangeType = requestModel.ItemDetails.ItemChangeType.ToString(), message });
}
這裏是因爲他們在查看
<td class="tblist" style="white-space: nowrap;">
@Html.ActionLink("Request Update", "RequestUpdate", new { itemID = item.ItemID }, new AjaxOptions {
HttpMethod = "POST",
Confirm = "Request an Update to this item?",
OnSuccess = "actionCompleted"
})break;
}
</td>
<td class="tblist" style="white-space: nowrap;">
@Ajax.ActionLink("Delete", "Delete", new { itemID = item.ItemID }, new AjaxOptions {
HttpMethod = "POST",
Confirm = "Are you sure you want to delete this Item?",
OnSuccess = "actionCompleted"
})
</td>
定義同樣,這裏的刪除工作沒有問題的鏈接。請求更新鏈接給我提供了Http 404錯誤。
Anyhelp在這裏將不勝感激。
我注意到,其中一個呼叫使用Ajax.ActionLink,而另一個使用Html.ActionLink。這是你的意圖嗎? –