要从字符串创建Uri,您可以执行以下操作:
Uri u = new Uri("example.com");
Run Code Online (Sandbox Code Playgroud)
但问题是如果字符串(如上所述)不包含协议,您将获得异常:" Invalid URI: The format of the URI could not be determined.
"
为避免异常,您应该确保字符串包含协议,如下所示:
Uri u = new Uri("http://example.com");
Run Code Online (Sandbox Code Playgroud)
但是如果你把url作为输入,如果它丢失了,你如何添加协议呢?
我的意思是除了一些IndexOf/Substring操作?
优雅而快速的东西?
我从服务器获取JSON数据,其中一个字段包含转义的html(实际上是一个电子邮件正文):
<html>\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r\n</head>\r\n<body dir="auto">\r\n<div>Buonasera, ho verificato i dati sul mio account ed il numero di cell che vi ho fornito</div>\r\n<div><br>\r\n<a
(更多...)
我正试图用AngularJs渲染它.
以下不起作用:
<div ng-bind-html-unsafe="mail.htmlbody"></div>
Run Code Online (Sandbox Code Playgroud)
我认为这是正常的,因为html实际上已被转义.我应该先取消它吗?Angular能否通过一些可用的服务来解决html问题?
如果我像这样使用$ sce:
scope.mail.htmlbody = $sce.trustAsHtml(scope.mail.htmlbody);
Run Code Online (Sandbox Code Playgroud)
显示源html,检查我可以看到内容被引用的元素.换句话说,在页面中显示源html而不是正在呈现的html.也许我错过了什么?
我有一个点列表(实际上是商店坐标),我需要确定它们是否位于某些边界内.
在C#中我知道如何从lat&lng创建一个点
var point = new GeoCoordinate(latitude, longitude);
Run Code Online (Sandbox Code Playgroud)
但是,如何检查该点是否包含在由其他两点定义的矩形中:
var swPoint = new GeoCoordinate(bounds.swlat, bounds.swlng);
var nePoint = new GeoCoordinate(bounds.nelat, bounds.nelng);
Run Code Online (Sandbox Code Playgroud)
我可以使用任何课程方法吗?
我疯了
如果我在我的iphone上用chrome打开这个网址https://www.gomme-auto.it/pneumatici/205/55/16,并尝试输入页面顶部的大输入字段,那就非常缓慢而且迟钝几乎无法使用.
如果我在safari中打开它,它可以正常工作.
在我试过的任何iphone模拟器中,它都能正常工作.但在物理设备上却没有.使用ios 8.4.1(最新版)试用iphone5/iphone6/ipad-air.
我花了最后12个小时试图了解什么是错的,我无法确定问题所在.
我检查了一些其他网站,我找不到有这种行为的其他网站,所以这是我的HTML,但到目前为止,我一直无法找到有什么问题.
因为在Safari中一切正常,它与Chrome有关.
如果有人可以提供帮助,那就太好了.
假设我们有一个像这样的文档集合:
{
"_id" : ObjectId("591c54faf1c1f419a830b9cf"),
"fingerprint" : "3121733676",
"screewidth" : "1920",
"carts" : [
{
"cartid" : 391796,
"status" : "New",
"cart_created" : ISODate("2017-05-17T13:50:37.388Z"),
"closed" : false,
"items" : [
{
"brandid" : "PIR",
"cai" : "2259700"
}
],
"updatedon" : ISODate("2017-05-17T13:51:24.252Z")
},
{
"cartid" : 422907,
"status" : "New",
"cart_created" : ISODate("2017-10-23T08:57:06.846Z"),
"closed" : false,
"items" : [
{
"brandid" : "PIR",
"cai" : "IrHlNdGtLfBoTlKsJaRySnM195U"
}
],
"updatedon" : ISODate("2017-10-23T09:46:08.579Z")
}
],
"createdon" : ISODate("2016-11-08T10:29:55.120Z"),
"updatedon" : ISODate("2017-10-23T09:46:29.486Z")
} …
Run Code Online (Sandbox Code Playgroud) 在chrome中,开发人员工具对于xhr请求(网络选项卡)的"重放xhr"非常有用.我已经开始在我的代码中使用fetch,并且chrome开发人员工具不允许"重放"获取请求,它怎么可能?难道我做错了什么?
我是MVC的新手.
我知道如何创建捆绑包,它很简单,它是一个很棒的功能:
bundles.Add(new StyleBundle("~/content/css").Include(
"~/content/main.css",
"~/content/footer.css",
"~/content/sprite.css"
));
Run Code Online (Sandbox Code Playgroud)
但是,假设您的应用程序可以在不同的域下访问,并根据主机名为不同的css提供不同的内容.
如何根据主机名包含不同的文件包?在我的RegisterBundles所在的应用程序启动中(就像我开始使用的MVC标准的Internet应用程序),我甚至都不知道主机名.
什么是最佳做法?
如果我在注册捆绑包时可以使用主机名,我可以为当前主机名选择正确的.css文件.我可以在应用程序开始请求中注册bundle,并以某种方式检查它是否已经注册,如果没有,请选择正确的文件作为请求的主机名并注册它?
如果有,怎么样?
编辑1
在过去的两个小时里,我更深入地研究了这个主题,让我提出我的解决方案,希望谁比我更专业,MVC可以纠正我的方法,如果错误的话.
我换了:
@Styles.Render("~/Content/css")
Run Code Online (Sandbox Code Playgroud)
有:
@Html.DomainStyle("~/Content/css")
Run Code Online (Sandbox Code Playgroud)
这只是一个简单的帮手:
public static class HtmlExtensions
{
public static IHtmlString DomainStyle(this HtmlHelper helper, string p)
{
string np = mynamespace.BundleConfig.RefreshBundleFor(System.Web.Optimization.BundleTable.Bundles, "~/Content/css");
if (!string.IsNullOrEmpty(np))
return Styles.Render(np);
else
{
return Styles.Render(p);
}
}
}
Run Code Online (Sandbox Code Playgroud)
RefreshBundleFor的位置是:
public static string RefreshBundleFor(BundleCollection bundles, string p)
{
if (bundles.GetBundleFor(p) == null)
return null;
string domain = mynamespace.Utilities.RequestUtility.GetUpToSecondLevelDomain(HttpContext.Current.Request.Url);
string key = p + "." + domain;
if (bundles.GetBundleFor(key) == …
Run Code Online (Sandbox Code Playgroud) 我还在学习angularjs所以也许有些东西很愚蠢我不理解但是在使用路由时我有一个非常奇怪的行为.
在我的应用程序中,我使用以下代码来定义我的路由:
var app = angular.module('app', []);
app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider.
when('/pneumatici/:chunka', {}).
when('/pneumatici/:chunka/:chunkb', {});
$locationProvider.html5Mode(true);
}]);
Run Code Online (Sandbox Code Playgroud)
在控制器中我以这种方式管理它们:
app.controller('appCtrl', ['$scope', '$route', '$routeParams', '$location', function ($scope, $route, $routeParams, $location) {
$scope.$on('$routeChangeSuccess', function (current,previous) {
if (!($location.path().indexOf('/pneumatici') === -1)) {
$scope.chunka = $route.current.params.chunka; $scope.chunkb = $route.current.params.chunkb;
/** do my stuff with chunka and chunkb **/
} else {
window.location.href = $location.path();
}
});
Run Code Online (Sandbox Code Playgroud)
我没有ngView,没有模板,没有.它就像一个魅力.
请注意我实际强制页面加载的行,以防网址不是由控制器appCtrl管理.我被迫这样做是因为一旦我定义我的路线以捕获'$ routeChangeSuccess',当点击时页面中的所有链接都被角度捕获并且即使链接没有使用'when'定义的格式也不会发生页面加载.我想用'否则'来做这件事,但我无法理解如何,如果可行的话.
现在问题. 在页面当然我有像'/privacy.html'的链接,如果我点击它们正确触发页面加载,我看到'/privacy.html'但不幸的是,如果我点击后退按钮,我可以看到浏览器的URL更改为(例如)/ pneumatici/foo/bar但不会触发页面加载.
请注意在privacy.html页面中我没有定义角度路由,没有.config no .when; 有一个带有控制器的anagular应用程序,但没有在任何地方注入'$ routeProvider',没有任何路由的定义.
怎么了?我做错了什么?
谢谢你的帮助!
更新. …
假设您有以下代码来显示某些产品图片:
<ul>
<li ng-repeat="p in products">
<img ng-src="/images/{{p.img}}"/>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
现在让我们假设一些产品没有图像,你可以解决这个问题:
<ul>
<li ng-repeat="p in products">
<img ng-hide="p.img==undefined" ng-src="/images/{{p.img}}"/>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
现在转到firebug或chrome开发人员工具的"网络"选项卡并检查图像下载 - 您将看到错误,因为浏览器仍尝试下载不存在的图像.它是隐藏的,用户不会注意到,但当然它很糟糕:糟糕的做法,糟糕的服务器性能,糟糕的坏坏...
什么是正确的"角度"解决方案?
我有http://xyz.it/page1到http://xyz.it/pageN,我需要将所有页面重定向到http://bar.it/foo,我想我已经用这个规则解决了它:
<rule name="from-xyz-to-bar" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^xyz\.it$" />
</conditions>
<action type="Redirect" url="http://bar.it/foo" appendQueryString="false" redirectType="Permanent" />
</rule>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我的规则是将http://xyz.it/page1重定向到http://bar.it/page1,我不明白我错在哪里.
请帮忙!
我不知道这是不是一个bug,但我有一个带有以下选项的数据表+ ajax:
"bServerSide": true,
"sAjaxSource": url,
"fnServerData": function (sSource, aoData, fnCallback) {
jQuery.ajax({
"dataType": 'json',
"type": "POST",
"url": sSource,
"data": aoData,
"success": fnCallback
});
},
"sPaginationType": "bootstrap",
"aoColumns": [
{ "sName": "Id", "sType": 'numeric', "bVisible": false },
{ "sName": "PostingDate", "sType": 'Date' },
{ "sName": "Userid", "sType": 'string', "bVisible": false },
{ "sName": "DisplayName" },
{ "sName": "Description" },
{ "sName": "MainTag" },
{ "sName": "Tags" },
{ "sName": "HowMuch" }
]
Run Code Online (Sandbox Code Playgroud)
我有一个用户可以添加行的表单,当他们提交行时,我使用ajax调用将数据添加到数据库,然后调用:jQuery('#mydatatable').dataTable().fnReloadAjax();
当用户单击按"MainTag"列对表进行排序时,我的服务器端ajax会收到:
iSortCol_0 4
iSortingCols 1
Run Code Online (Sandbox Code Playgroud)
并且所有bSortable_都在那里,正确地从0到7(我有8列,如上所示.
现在我的问题是iSortCol_0有误导性,因为隐藏的列,如果我没有意思知道哪些列隐藏在服务器上我误解了iSortCol_0 …
我们正在开发一个使用FB Graph api服务器端,FB Javascript SDK和社交插件的Web应用程序(http://beta.dammela.it).
与FB的集成很深,我们希望检测访问我们网站的用户何时在代理后面阻止所有流向Facebook属性的流量(如在某些工作场所).
如果我们能够检测到他被阻止,我们可以给他/她一些提示,帮助,解释和一些替代方法来登录和与应用程序交互.
但我无法弄清楚如何做到这一点.
我猜,但我只是猜测,有一种方法可以检测用户访问Facebook是否被阻止检查Javascript SDK中的内容,但我无法找到什么和/或如何.
任何的想法?