Mobil aygıtlardaki kullanıcıların MVC'de, siteyi normal bir masaüstünde görüntülerken oluşmayan bir hatayla karşılaştığı bir sorun yaşıyorum. Chrome’un geliştirici araçlarını kullanarak ve varsayılandan başka bir UA’yı uygulayarak sürekli olarak hata oluşturabilirim.Kullanıcı Aracısı MVC DisplayFor'a karşı ArgumentException: Yoldaki geçersiz karakterler
atılan yatan istisna değildir: kemancı kullanma ArgumentException: Illegal characters in path. at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) at System.IO.Path.GetExtension(String path) at System.Web.WebPages.DefaultDisplayMode.TransformPath(String virtualPath, String suffix) at System.Web.WebPages.DefaultDisplayMode.GetDisplayInfo(HttpContextBase httpContext, String virtualPath, Func'2 virtualPathExists) at System.Web.WebPages.DisplayModeProvider.GetDisplayInfoForVirtualPath(String virtualPath, HttpContextBase httpContext, Func'2 virtualPathExists, IDisplayMode currentDisplayMode, Boolean requireConsistentDisplayMode) at System.Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName(ControllerContext controllerContext, List'1 locations, String name, String controllerName, String areaName, String cacheKey, String[]& searchedLocations) at System.Web.Mvc.VirtualPathProviderViewEngine.GetPath(ControllerContext controllerContext, String[] locations, String[] areaLocations, String locationsPropertyName, String name, String controllerName, String cacheKeyPrefix, Boolean useCache, String[]& searchedLocations) at System.Web.Mvc.VirtualPathProviderViewEngine.FindPartialView(ControllerContext controllerContext, String partialViewName, Boolean useCache) at System.Web.Mvc.ViewEngineCollection.<>c__DisplayClass2.<FindPartialView>b__1(IViewEngine e) at System.Web.Mvc.ViewEngineCollection.Find(Func'2 lookup, Boolean trackSearchedPaths) at System.Web.Mvc.ViewEngineCollection.FindPartialView(ControllerContext controllerContext, String partialViewName) at System.Web.Mvc.Html.TemplateHelpers.ExecuteTemplate(HtmlHelper html, ViewDataDictionary viewData, String templateName, DataBoundControlMode mode, GetViewNamesDelegate getViewNames, GetDefaultActionsDelegate getDefaultActions) at System.Web.Mvc.Html.TemplateHelpers.TemplateHelper(HtmlHelper html, ModelMetadata metadata, String htmlFieldName, String templateName, DataBoundControlMode mode, Object additionalViewData, ExecuteTemplateDelegate executeTemplate) at System.Web.Mvc.Html.TemplateHelpers.TemplateHelper(HtmlHelper html, ModelMetadata metadata, String htmlFieldName, String templateName, DataBoundControlMode mode, Object additionalViewData) at System.Web.Mvc.Html.TemplateHelpers.TemplateFor[TContainer,TValue](HtmlHelper'1 html, Expression'1 expression, String templateName, String htmlFieldName, DataBoundControlMode mode, Object additionalViewData, TemplateHelperDelegate templateHelper) at System.Web.Mvc.Html.TemplateHelpers.TemplateFor[TContainer,TValue](HtmlHelper'1 html, Expression'1 expression, String templateName, String htmlFieldName, DataBoundControlMode mode, Object additionalViewData) at System.Web.Mvc.Html.DisplayExtensions.DisplayFor[TModel,TValue](HtmlHelper'1 html, Expression'1 expression)
, başarısız bir isteğine başarılı olanı karşılaştırarak istekleri tek fark User-Agent (ve bir parçası olarak jQuery tarafından eklenen önbellek engelleyici olduğunu sorgu dizesi parametreleri.
Neden UA'yı bu istisnaya neden değiştiriyorsunuz ve bu durumun oluşabileceği her yer için sisteme özel bir çalışma yazmadan bu sorunu nasıl önleyebilirim?
Bunun için bir çözüm buldunuz mu? –
@RomanMik - Aslında aynı işi, model modellerimde verim bloklarını kullanmaktan kaçınmak için aşağıda CSJ olarak buldum. Verimi kullanmak yerine listeyi gerçekleştirecek kodu değiştirdikten sonra sorun çözüldü. Bunun hala neden bazı kullanıcı aracıları ile .NET'te gerçekleştiğini tam olarak anlamadım ama en azından etrafta çalışmak için standart bir yol var. – SignalRichard
İlgili SO makalesinde paylaştığım ASP.NET DisplayModeProvider ile ilgili farklı bir çözüm buldum http://stackoverflow.com/questions/33694842/illegal-characters-in-path-depending-on-user-agent/40229384#40229384 –