[英]Server Error in '/' Application. (The resource cannot be found. )
[英]Server Error in '/' Application. Resource Cannot Be Found. ASP.NET MVC
我正在使用ASP.NET MVC 4 C Sharp,我有這個錯誤
'/'應用程序中的服務器錯誤。
無法找到該資源。 說明:HTTP 404.您要查找的資源(或其中一個依賴項)可能已被刪除,名稱已更改或暫時不可用。 請查看以下網址,確保拼寫正確。
請求的URL:/ ClerkBooking / ConfirmBooking / 22
在我的控制器中我有:
[HttpPost]
[ValidateAntiForgeryToken]
[Authorize(Roles = "Booking Clerk")]
public ActionResult ConfirmBooking(int id = 0)
{
if (ModelState.IsValid)
{
//Find the booking
Booking booking = db.Bookings.Find(id);
//Get RoomID of Preferred Room.
int roomId = Convert.ToInt32(db.Rooms.Find(booking.PreferredRoom));
//Set RoomID of Booking.
booking.RoomId = roomId;
//Save Changes.
db.SaveChanges();
}
return View("Index");
}
所以我不確定為什么即使它在正確的位置也找不到方法。 任何幫助都會很棒! 謝謝!
您的操作鏈接@Html.ActionLink("Confirm Booking", "ConfirmBooking", new {id = booking.BookingId})
將發出GET
請求,但您在操作上放置了[HttpPost]
屬性。
您可能希望將鏈接設置為表單帖子中的按鈕而不是操作鏈接。
這是一個例子:
@using (Html.BeginForm("ConfirmBooking", "ClerkBooking", new { id = booking.BookingId }))
{
<input type="submit" value="Confirm Booking" />
}
是否將AntiForgeryToken添加到您的html文件中?
@using (Html.BeginForm("Manage", "Account")) {
@Html.AntiForgeryToken()
}
如果沒有,那么可能asp.net mvc阻止到達你的控制器。
另外,請不要忘記使用以下參數檢查Global.asax:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "ClerkBooking", action = "ConfirmBooking", id = UrlParameter.Optional } // Parameter defaults
);
}
否則你必須從外面聲明你的id對象。
$.ajax("/ClerkBooking/ConfirmBooking/?id=22", {
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (result) {
//Do Something
}
}
}).fail(function () {
//Do Something
});
確保您的控制器被稱為“ClerkBooking”並從方法中刪除[HttpPost]
裝飾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.