2015-10-01 2 views
0

На моем сайте, у меня был старый угловой директивы тот не используется больше, но много поставщиков поисковых систем пытаются попасть конкретный URL на моем сайте:Игнорирование ошибки маршрута

/Spn/{{Адид} }

Вот ActionMethod:

public ActionResult Spn(int adId) 
{ 
    .. my code here 

    return RedirectToAction("Index"); 
} 

Everytime это происходит ошибку получает регистрируемую в Elmah, но это становится действительно раздражает, чтобы увидеть эти ошибки в Elmah, что это лучший способ предотвратить эту ошибку от Ведение журнала? Ошибка возникает до того, как код попадает внутрь метода действия.

Вот ошибка: [ArgumentException: Словарь параметров содержит пустую запись для параметра «Адид» не-обнуляемого типа «System.Int32» для метода «System.Web.Mvc.ActionResult Spn (Int32)

ответ

0

попытаться сделать параметр Nullable действий ..

public ActionResult Spn(int? adId) 
    { 
     .. my code here 

     return RedirectToAction("Index"); 
    } 
+0

Я действительно не любитель делать это, я бы предпочел, чтобы обработать ошибку, прежде чем он достигнет метод действия, это означает, что мне придется поместить нулевую проверку в мой метод действия. – TheWebGuy

0

Если ваш метод действия «не используется больше», почему она существует? Вы должны удалить его. Это заставит ваш сервер вернуть ответ 404, чтобы поисковые системы могли удалить его из своего индекса.

В качестве альтернативы вы можете заблокировать доступ к URL-адресу, установив IgnoreRoute.

RouteTable.Routes.IgnoreRoute("{folder}/{*pathInfo}", new {folder="[Ss]pn"}); 

Если вы хотите, чтобы направить трафик, который все еще идет к этому URL где-то еще, то установка 301 ответ с помощью IIS rewrite module так, что трафик не будет пытаться перейти к методу действия и таким образом поисковые системы будут знать, чтобы удалить URL из своего индекса и заменить его новым URL-адресом.

<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="spn2index" stopProcessing="true"> 
       <match url="^Spn/?.*$" /> 
       <action type="Redirect" url="Index" redirectType="Permanent" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

Ссылки:

Смежные вопросы