2017-11-12 12 views
2

修正アップデートasp.netコア2オプションの属性は404

に私がそれをallowDoubleEscaping許可されなかった意味404.11だった実際のエラーに十分な注意を払っていなかったようだ結果私は私のプロジェクトにweb.configファイルを追加し、

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
    <security> 
    <requestFiltering allowDoubleEscaping="true" /> 
    </security> 
</system.webServer> 
</configuration> 

を以下に設定しなければならなかった私は、次の属性ルート

012を持っています私は /home/coin/mysymbol/myname+moreofnameを持っている場合

私は/home/coin/mysymbolにナビゲートする場合、それは私が/home/coin/mysymbol/mynameを持っている場合、これはまた、作品、作品は、しかし、それは404 Not Foundをもたらす任意のスペースが+に変更しますので、渡されているnameパラメータは、URLエンコードされていますあなたは、単に+およびその他の特殊文字を置き換える場合はどうコントローラの

UPDATE休憩(コード取り除か)

public class HomeController : BaseController 
{ 

    private readonly IViewRenderService _viewRenderService; 

    public HomeController(CryptoDateContext context, IConfiguration configuration, 
     IViewRenderService viewRenderService, IOptions<GeneralSettings> generalSettings, ILogger<BaseController> logger) 
     : base(context, configuration, generalSettings, logger) 
    { 
     logger.LogDebug("Base controller ctor called"); 
     _viewRenderService = viewRenderService; 

    } 

    public IActionResult Sitemap() 
    { 


    } 

    public async Task<IActionResult> SymbolSitemap() 
    { 

    } 




    [ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)] 
    public IActionResult GetSearchResults(SearchCriteria criteria) 
    { 


    } 
    public IActionResult Index() 
    { 

    } 

    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public IActionResult AddEvent(SubmitEventModel model) 
    { 

    } 


    public IActionResult SubmitEvent(int? id) 
    { 

    } 

    public IActionResult DownloadICS(int id) 
    { 



    } 
    [HttpPost] 
    [ServiceFilter(typeof(ValidateReCaptchaAttribute))] 
    public IActionResult SubmitContactus(ContactUsModel model) 
    { 

    } 

    public IActionResult Contribute() 
    { 


     return View(); 
    } 
    public IActionResult Telegram() 
    { 


     return View(); 
    } 
    [Route("home/event/{id:int}/{title?}")] 
    public IActionResult Event(int id, string title = null) 
    { 

    } 
    [Route("home/coin/{symbol:alpha}/{name?}")] 
    public IActionResult Symbol(string symbol, string name = null) 
    { 

    } 

    public IActionResult Contact() 
    { 

    } 

    public IActionResult Error() 
    { 
     return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); 
    } 
    public IActionResult Exception() 
    { 
     throw new Exception("Testing"); 
    } 
} 

答えて

0

?次のような関数を使用する:

public string ClearnUrl(string title) 
     { 
      string cleanTitle = title.ToLower().Replace(" ", "-"); 
      //Removes invalid character like .,-_ etc 
      cleanTitle = Regex.Replace(cleanTitle, @"[^a-zA-Z0-9\/_|+ -]", ""); 
      cleanTitle = cleanTitle.Replace("/", ""); 
      return cleanTitle; 
     } 
関連する問題