Tôi đang xây dựng một ứng dụng MVC 3 với phần phụ trợ IIS 7.5. Trên bộ điều khiển của tôi, tôi có các phương thức hành động cho phép người dùng thêm/chỉnh sửa các đối tượng miền. Hành động xử lý HTTP Post, có một giá trị trả về của chuỗi chứa bất kỳ thông báo lỗi xác thực nào gặp phải trong quá trình lưu. Dưới đây là một ví dụ về một phương pháp hành động:IIS ghi đè văn bản phản hồi HTTP khi trạng thái phản hồi HTTP được đặt là 400
[HttpPost]
public string CustomerEdit(CustomerModel customerModel)
{
var errorMessages = new StringBuilder();
var serverErrors = new List<string>();
//Map to a customer domain object
Mapper.CreateMap<CustomerModel, Customer>();
var customer = Mapper.Map<CustomerModel, Customer>(customerModel);
if (customerModel.Oper == "del")
{
var customerIds = new List<Guid>();
customerIds.Add(customer.Id);
if (!_serverService.DeleteCustomers(customerIds))
{
errorMessages.Append("The item could not be deleted");
Response.StatusCode = Constants.STATUS_SERVER_ERROR;
}
}
else
{
//Validate
if (!_serverService.ValidateCustomer(customer, out serverErrors))
{
foreach (var error in serverErrors)
{
ModelState.AddModelError("Validation", error);
}
}
//Save
if (ModelState.IsValid)
{
var saveStatus = _serverService.SaveCustomer(ref customer, _id);
if (!saveStatus)
{
errorMessages.Append("The server encountered and error during Save");
Response.StatusCode = Constants.STATUS_SERVER_ERROR;
}
}
else
{
errorMessages.Append(GetValidationErrors(ModelState));
Response.StatusCode = Constants.STATUS_SERVER_ERROR;
}
}
return errorMessages.ToString();
}
Trong trường hợp của một lỗi, tôi cần phải thiết lập thuộc tính Response.StatusCode đến một giá trị của một trong hai 400/500, và trả về một chuỗi nối các thông báo lỗi chi tiết . Thật không may, IIS luôn xóa chuỗi lỗi của tôi trong bài kiểm tra phản hồi và (trong trường hợp có 400 lỗi), hãy thêm thay thế bằng chuỗi 'Yêu cầu không hợp lệ'
Có cách nào để định cấu hình IIS để trả về tùy chỉnh, Tác vụ hay không -specific, chuỗi khi mã trạng thái được đặt thành 400?
Tôi đã tìm thấy cách để thực hiện việc này, vui lòng xem câu trả lời của tôi để biết chi tiết – TheoryOfLight