هدایت خودکار آدرسهای یافت نشد در یک سایت ASP.NET MVC به جستجوی سایت
نویسنده: وحید نصیری
تاریخ: ۱۳۹۳/۰۱/۲۲ ۱۲:۱۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
https://www.dntips.ir/jquery https://www.dntips.ir/mvc https://www.dntips.ir/برنامه
[ValidateInput(false)] //برنامه نویسها نیاز دارند تگها را جستجو کنند
public virtual ActionResult Index(string term)
{ public class StructureMapControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
return ObjectFactory.GetInstance(controllerType) as Controller;
}
} public class StructureMapControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType == null)
{
var url = requestContext.HttpContext.Request.RawUrl;
//string.Format("Page not found: {0}", url).LogException();
requestContext.RouteData.Values["controller"] = MVC.Search.Name;
requestContext.RouteData.Values["action"] = MVC.Search.ActionNames.Index;
requestContext.RouteData.Values["term"] = url.GetPostSlug().Replace("-", " ");
return ObjectFactory.GetInstance(typeof(SearchController)) as Controller;
}
return ObjectFactory.GetInstance(controllerType) as Controller;
}
} routes.RouteExistingFiles = true; //نیاز هست دانلود عمومی فایلها تحت کنترل قرار گیرد
routes.MapRoute(
"CatchAllRoute", // Route name
"{*url}", // URL with parameters
new { controller = "Search", action = "Index", term = UrlParameter.Optional, area = "" }, // Parameter defaults
new { term = new UrlConstraint() }
); public class UrlConstraint : IRouteConstraint
{
public bool Match(System.Web.HttpContextBase httpContext,
Route route, string parameterName,
RouteValueDictionary values,
RouteDirection routeDirection)
{
var url = httpContext.Request.RawUrl;
//string.Format("Page not found: {0}", url).LogException();
values["term"] = url.GetPostSlug().Replace("-", " ");
return true;
}
}