Tôi có một loại url sau được sử dụng trong Ứng dụng của tôi.Tuyến với hai tham số tùy chọn trong MVC3 không hoạt động
localhost/admin/userdetail/id
localhost/admin/userdetail/id/đúng
localhost/admin/userdetail/id/đúng/thành công
Đây là điều khiển quản trị của tôi
bool inSaveAction, tình trạng chuỗi là không bắt buộc
[Authorize]
public ActionResult UserDetail(string Id, bool inSaveAction, string status)
{
}
[HttpPost, Authorize, ValidateAntiForgeryToken]
public ActionResult SaveUserDetail(UserDetailViewModel viewModel)
{
User userToSave = new User();
AdminService.UpdateUser(userToSave);
//This is calling the above function as it sending all 3 params
return RedirectToAction("UserDetail", new { Id = viewModel.Id,
inSaveAction = true, status = "success" });
}
Dưới đây trường hợp không được làm việc
@Html.ActionLink("DisplayName", "UserDetail", new { id = Model.Id })
Trong Global.asax
routes.MapRoute("UserDetail",
"UserDetail/{id}",
new
{
controller = "Admin",
action = "UserDetail",
id = UrlParameter.Optional
}
);
Tôi đi theo http://haacked.com/archive/2011/02/20/routing-regression-with-two-consecutive-optional-url-parameters.aspx
Làm thế nào tôi có thể làm tình trạng inSaveAction & như tham số tùy chọn cho hành động UserDetail của tôi?
Tôi đã thử với mã bạn cung cấp. Điều này cũng không hoạt động. Nó không tham gia vào phương thức hành động. Bất kỳ vấn đề trong định tuyến hoặc phương pháp hành động params? –
Tôi vừa mới đăng bản chỉnh sửa, bạn cần phải đặt id và inSaveAction có thể vô hiệu hóa. Điều gì không hoạt động? Tôi đã thử nghiệm điều này và tất cả các tuyến đường đều hoạt động. – mfanto
Cảm ơn. trạng thái cũng chỉ tùy chọn. –