Asp.net 3.5
IIS 7
NHibernet
www.sample.com
Сайт размещен в виртуальном каталоге
Генерирует URL, например "/ sample / home / index" вместо "/ home / index"
хорошо, приложение работает с указанным выше URL, но когда я вызываю любые данные Ajax, такие как casecade dropdwonlist, я возвращаю 404.
Действия работают нормально, но только когда я возвращаю Json (данные), он возвращает 404.
Я пытался с GET и POST
код
[HttpPost]
public ActionResult GetSubCategories2(int id)
{
var data = from subCat in CategoryService.GetChildByParentCategory(
CategoryService.GetCategoryByID(id))
select new { Value = subCat.ID, Text = subCat.CategoryName };
return Json(data);
}
У меня есть один фильтр безопасности и обработчик ошибок
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method
, Inherited = true, AllowMultiple = false)]
public class HandelRecordNotFound : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception.Message.IndexOf("No row with the given identifier exists") > -1)
{
//filterContext.HttpContext.Response.Redirect("~/Admin/InvalidRequestOrRecordNotFound");
filterContext.Result = new RedirectResult("~/Admin/InvalidRequestOrRecordNotFound");
filterContext.ExceptionHandled = true;
}
if (filterContext.Exception.Message.IndexOf("The DELETE statement conflicted") > -1)
{
//filterContext.HttpContext.Response.Redirect("~/Admin/InvalidRequestOrRecordNotFound");
filterContext.Result = new RedirectResult("~/Admin/InvalidRequestOrRecordNotFound");
filterContext.ExceptionHandled = true;
}
//filterContext.Exception.Message
}
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method
, Inherited = true, AllowMultiple = false)]
public class AdminAuthorization : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
base.AuthorizeCore(httpContext);
object userTypeObject = httpContext.Session["UserType"];
if (userTypeObject == null ||
(UserTypes)Enum.ToObject(typeof(UserTypes), userTypeObject) != UserTypes.Administrator)
{
return false;
}
return true;
}
}
За исключением вышесказанного, все нормально.
все отлично работает на стороне клиента, но на сервере метод JsonResult возвращает ошибку 404.