基本上我有一些代码来检查特定的目录,看看是否有图像,如果是,我想将图像的URL分配给ImageControl.
if (System.IO.Directory.Exists(photosLocation))
{
string[] files = System.IO.Directory.GetFiles(photosLocation, "*.jpg");
if (files.Length > 0)
{
// TODO: return the url of the first file found;
}
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
条件运算符无法隐式转换?
为什么null需要显式类型转换?
我有一个搜索,并没有找到一个很好的解释为什么发生以下情况.
我有两个具有共同接口的类,我尝试使用三元运算符初始化此接口类型的实例,如下所示但是无法编译错误"无法确定条件表达式的类型,因为之间没有隐式转换'xxx.Class1'和'xxx.Class2':
public ConsoleLogger : ILogger { .... }
public SuppressLogger : ILogger { .... }
static void Main(string[] args)
{
.....
// The following creates the compile error
ILogger logger = suppressLogging ? new SuppressLogger() : new ConsoleLogger();
}
Run Code Online (Sandbox Code Playgroud)
如果我明确地将第一个conditioin强制转换为我的界面,这是有效的:
ILogger logger = suppressLogging ? ((ILogger)new SuppressLogger()) : new ConsoleLogger();
Run Code Online (Sandbox Code Playgroud)
显然我总能做到这一点:
ILogger logger;
if (suppressLogging)
{
logger = new SuppressLogger();
}
else
{
logger = new ConsoleLogger();
}
Run Code Online (Sandbox Code Playgroud)
替代方案很好,但我不能完全理解为什么第一个选项因隐式转换错误而失败,因为在我看来,这两个类都是ILogger类型,我不是真的想要进行转换(隐式或显式) ).我敢肯定这可能是一个静态语言编译问题,但我想了解发生了什么.
我在ASP.NET MVC 1应用程序中使用DataAnnotations,使用Required和Range属性检查Required字段和数字范围.
我正在寻找在几个输入文本框中验证字符串长度的最佳方法.我看到有一个RegularExpression属性可以完成这项工作,但我想知道是否有更具体的属性来执行此操作?
如果有人能指出我使用DataAnnotations的合适资源,我将非常感激.
我们在我们的网站上有几个向导样式表单应用程序,我们在每个页面上捕获用户的信息,然后使用Web服务提交到后端进程.
遗憾的是,我们无法在每个表单提交期间以块的形式提交信息,因此我们必须将用户会话存储到流程结束并同时提交.
服务器内存/ sql server磁盘空间的数量是我可以在用户会话中存储多少的唯一约束,还是我还需要考虑其他事项?
编辑:该站点基于ASP.NET Web表单构建.
我们使用了第三方Web服务,并尝试从ASP.NET Web应用程序调用它.但是,当我实例化Web服务时,抛出以下System.InvalidOperationException异常:
方法'ABC.XYZ'无法反映.System.InvalidOperationException:无法反映方法"ABC.XYZ".---> System.InvalidOperationException:命名空间" http://mysoftware.com/ns "中的XML元素"MyDoc "引用方法和类型.使用WebMethodAttribute更改方法的消息名称,或使用XmlRootAttribute更改类型的根元素.
从我可以收集的内容来看,Web服务中的方法和类型之间似乎存在一些歧义.任何人都可以澄清这个例外的可能原因,有什么我可以做的来纠正这个或者我应该去网络服务所有者纠正?
编辑:Visual Studio 2008已创建代理类.不幸的是,我无法提供wsdl的链接,因为它是本地安装的第三方应用程序的Web服务.
任何人都可以建议一些好的浏览器附加工具/扩展来帮助开发吗?我在Firefox中安装了firebug,非常适合处理CSS,HTML和javascript; 还有其他建议吗?
我试图理解装饰器模式,从实例中我理解装饰器对象如何通过覆盖装饰对象的方法以及如何通过新方法实现添加其他功能来在运行时扩展现有功能.
我有点困惑的地方是使用多个装饰器以及如何访问扩展功能.通常,在查看装饰器模式的示例时,会显示以下内容:
IBusinessObject businessObject = new MailDecorator(
new SmsDecorator(
new FaxDecorator(
new BusinessObject()
)
)
);
Run Code Online (Sandbox Code Playgroud)
想法是采取一个对象并动态添加邮件,短信和传真功能.现在,如果您想发送邮件,这是MailDecorator类提供的方法,您可以执行以下操作:
If(businessObject is MailDecorator)
{
((MailDecorator) businessObject).SendMail();
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您想要发送短信或传真,就像在装饰器模式的正常实现中那样,您将无法访问装饰器引用的对象,这将无效.
这是装饰器模式的限制还是超出了你可以期望用这种模式实现的范围,还是我完全误解了这里的东西?
不同的模式会更合适吗?
标准定义
"动态地将附加职责附加到对象.装饰器为子类提供了灵活的替代方案,可以扩展功能"
意味着这应该可以通过这种模式实现,但在一个对象上使用多个装饰器时似乎会崩溃.
我正在寻找关于在ASP.NET中实现密码恢复服务的一些指导,该服务通过电子邮件发送到用户的链接,该链接将它们发送到密码重置页面,因为我不想以明文形式通过电子邮件发送现有或重新生成的密码.
我已经看到了使用成员id作为查询字符串参数的一些建议,但是我觉得这可能会被滥用,因为我正在使用的自定义成员资格表使用guid的ints intead作为id字段.
我想我需要创建一个包含唯一(长)id的自定义表以及每次用户请求密码恢复时填充的成员ID.然后,此ID将作为密码重置页面链接中查询字符串的一部分传递.当用户点击链接时,页面将在自定义表中查找id并从中获取成员ID,允许用户更改该成员资格的密码.
这看起来像是一种有效的方法; 这有点难过吗?任何其他建议将不胜感激.
我正在设计一个包含几个字段的表,用于记录重量和长度.
例如:
5千克和50克将被存储为5.050.
2米25厘米将存储为2.25.
什么T-SQL数据类型最适合这些?
将需要对这些字段进行一些计算,但使用默认小数(18,0)似乎有点过分.
我已经包装了一个dll方法,它在Web服务中有一个整数作为out参数.在测试中,我发现当我期待-1时,我得到的是65,535.我意识到dll使用的是16位整数,我在代码中引用外部dll时指定了标准的.NET 32位整数.通过指定一个16位整数很快就可以解决这个问题.
我的问题是为什么会发生这种情况?如果我试图在16位整数中拟合一个32位整数,我可以理解发生溢出但是我不太确定为什么这会发生反过来.显然,我对类型之间的类型铸造的理解有点缺乏,因此任何指导都将受到高度赞赏.
我正在使用jQuery自动完成插件并连接了一个输入字段,以便在输入文本时从后端数据库中检索值,然后可以选择该文本.
然后我有一个第二个输入字段,我以类似的方式连接,但是我想在自动完成ajax调用中将第一个输入字段的值作为查询字符串参数传递,以便可以过滤自动完成结果.
我已经尝试使用第一个输入字段的.val()方法,但这似乎总是返回一个空字符串,除非我允许表单回发.我也尝试过使用getElementById('xxx').value但这会返回一个空值.
有没有什么方法可以检索在第一个字段中选择的动态值,所以我可以将它传递给我的jQuery ajax调用服务器?
下面的代码,为简洁起见删除了一些代码
<% using (Html.BeginForm()) {%>
<script language="javascript">
$(document).ready(function(){
$("#Make").autocomplete('/MyController/AutoCompleteMake', {
dataType: 'json',
parse: function(data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = { data: data[i], value: data[i], result: data[i] };
}
return rows;
},
formatItem: function(row) {
return row;
},
delay: 40
});
$("#Range").autocomplete('/MyController/AutoCompleteRange?Make=' + $('input[name=Make]').val(), {
same as above .......
});
});
</script>
<fieldset>
<legend>Fields</legend>
<p>
<label for="Make">Make:</label>
<%= Html.TextBox("Make") %>
<%= Html.ValidationMessage("Make", "*") …Run Code Online (Sandbox Code Playgroud) 除了将非法属性插入标签并使我的HTML无效之外,我从未做过我之前想做的事情,并且很可能会在我工作的其他方面从这个答案中受益.
我认为问题是我试图从字符串"$(this).attr('num')中减去"1"
如果我首先将"$(this).attr('num')"转换为整数然后从中减去"1",这可能会有效.
我对任何其他解决方案持开放态度.谢谢
//
$("#jumpPreviousButton").click(function(){
var imageNumber = $(this).attr('num');
$("#bgImageBox").css({
"background-image": "url(/galleryImages/worksImage"
+ imageNumber - 1
+".jpg)"
}).attr('num', imageNumber - 1);
return false;}
);
//
Run Code Online (Sandbox Code Playgroud) 我有这个字符串:
string foo = "<p>temp</p>";
Run Code Online (Sandbox Code Playgroud)
如何在不使用Response.Write(foo)的情况下在我的页面上显示它
asp.net ×5
c# ×3
asp.net-mvc ×2
jquery ×2
.net ×1
autocomplete ×1
browser ×1
decorator ×1
exception ×1
image ×1
passwords ×1
reflection ×1
regex ×1
security ×1
session ×1
sql ×1
string ×1
subtraction ×1
types ×1
url ×1
validation ×1
web-services ×1