Asp.net mvc 3 MVC3路由问题HTTP 404
我不知道为什么我的操作返回404“找不到资源”错误。 控制器名称:ItemManagementController “我的索引”视图具有表中的项目列表。每行包含两个链接,“删除”和“请求更新”。Delete链接调用Delete操作,工作正常。请求更新给了我404错误,并且似乎试图导航到类似的URL 我必须假设我遗漏了一些简单的东西,因为它们在视图方面所做的是相同的。控制器中定义的操作都是相似的,只是它们在服务层上调用不同的方法,仅此而已 下面是我的两个控制器操作Asp.net mvc 3 MVC3路由问题HTTP 404,asp.net-mvc-3,routing,Asp.net Mvc 3,Routing,我不知道为什么我的操作返回404“找不到资源”错误。 控制器名称:ItemManagementController “我的索引”视图具有表中的项目列表。每行包含两个链接,“删除”和“请求更新”。Delete链接调用Delete操作,工作正常。请求更新给了我404错误,并且似乎试图导航到类似的URL 我必须假设我遗漏了一些简单的东西,因为它们在视图方面所做的是相同的。控制器中定义的操作都是相似的,只是它们在服务层上调用不同的方法,仅此而已 下面是我的两个控制器操作 [AcceptVerbs(Htt
[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>
@ActionLink(“请求更新”,“请求更新”,新的{itemID=item.itemID},新的AjaxOptions{
HttpMethod=“POST”,
确认=“请求更新此项目?”,
OnSuccess=“actionCompleted”
})中断;
}
@ActionLink(“删除”,“删除”,新的{itemID=item.itemID},新的AjaxOptions{
HttpMethod=“POST”,
确认=“是否确实要删除此项目?”,
OnSuccess=“actionCompleted”
})
同样,这里的删除操作没有问题。请求更新链接给出了HTTP404错误
非常感谢您的帮助。检查您的查看代码。。。删除使用的是Ajax html帮助程序,更新使用的是常规html帮助程序。为什么在普通的
html.ActionLink
上使用AjaxOptions
(这就是请求更新的含义)
也许你希望它是这样的:
@Ajax.ActionLink(
"Request Update",
"RequestUpdate",
new {
itemID = item.ItemID
},
new AjaxOptions {
HttpMethod = "POST",
Confirm = "Request an Update to this item?",
OnSuccess = "actionCompleted"
}
)
我注意到其中一个调用使用Ajax.ActionLink,而另一个调用使用Html.ActionLink。这就是你想要的吗?谢谢。我知道我错过了一些简单的事情,但我就是看不到。我还有其他4个链接没有作为本文的一部分发布,但它们是HTML链接和Ajax链接的混合体,因此查找起来有点困难。再次感谢。