我有一个日期格式,如:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime? CreatedOn { get; set; }
Run Code Online (Sandbox Code Playgroud)
现在,我想让我的应用程序中的每个日期时间格式从一个配置文件中读取.喜欢:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = SomeClass.GetDateFormat())]
public DateTime? CreatedOn { get; set; }
Run Code Online (Sandbox Code Playgroud)
但这不会编译.
我怎样才能做到这一点?
我想可以使用Attribute进行异常处理,而不是在每个方法中写"try ... catch".
例如,现在,我的每个方法都是这样的:
public void DoSomething()
{
try
{
// do something
}
catch (Exception ex)
{
// exception handling rules, always the same.
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
我想要:
[HandleException]
public void DoSomething()
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
可能吗?
我正在使用默认的SQL Provider,默认的web.config设置来实现ASP.NET Membership.
我注意到密码是哈希的.但我不知道asp.net如何哈希我的密码,所以我不确定黑客是否有可能解密这个?
如果asp.net使用相同的规则来哈希密码,大家都知道.比黑客更容易破解它.
例如.如果asp.net使用MD5(123456),结果是"E10ADC3949BA59ABBE56E057F20F883E",那么黑客可能会有一个MD5字典来查找它.
我的设置是:
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
Run Code Online (Sandbox Code Playgroud)
- SQL语句:
SELECT am.UserId, am.[Password], am.PasswordSalt FROM aspnet_Membership am
Run Code Online (Sandbox Code Playgroud)
- 结果是:
F10A635D-22DA-419C-84E6-767D2A35A010,tpeiwPt5+kFbcocQZOuc4aoHeuI=,PVq9dPtbFxze9Erbfd7HrA==
Run Code Online (Sandbox Code Playgroud)
密码是123456,它变成"tpeiwPt5 + kFbcocQZOuc4aoHeuI =".
在不同的机器或不同的应用程序上,此值是否始终相同?
如果此值与盐"PVq9dPtbFxze9Erbfd7HrA =="有关,黑客是否可以使用此盐来解密我的密码?
我在MVC3应用程序中看到了很多使用Entity Framework的例子,它们是非常简单的演示,只有一个mvc3 web项目,里面有edmx.
因此,他们可以通过"使用"语句使用开放和关闭连接的最佳实践:
using(var context = new SchoolEntities())
{
// do some query and return View with result.
}
Run Code Online (Sandbox Code Playgroud)
并且,它可以正确使用"using"语句中的延迟加载(导航属性),因为上下文尚未处理:
foreach(var item in student.Course)
{
// do something with the navigation property Course
}
Run Code Online (Sandbox Code Playgroud)
在它成为n层应用程序之前,所有事情似乎都是完美的.
我创建了DAL,BLL和MVC3 UI.
该DAL已经EDMX里面,和运营商类,如SchoolDA.cs:
public class StudentDA()
{
public Student FindStudent(int studentId)
{
using(var context = new SchoolContext())
{
// do query, return a student object.
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在BLL中,如果我使用:
var student = studentDa.FindStudent(103);
Run Code Online (Sandbox Code Playgroud)
然后调用它的导航属性:
student.Course
Run Code Online (Sandbox Code Playgroud)
我会得到一个错误(当然):
ObjectContext实例已被释放,不能再用于需要连接的操作.
所以,我必须像这样更改StudentDA.cs:
public …Run Code Online (Sandbox Code Playgroud) 我正在查看EntityFramework.Extended。它可以在数据库实体上运行Update()和Delete()。喜欢:
//delete all users where FirstName matches
context.Users.Delete(u => u.FirstName == "firstname");
Run Code Online (Sandbox Code Playgroud)
但有趣的是,它不需要调用context.SaveChanges(),它只是直接进入数据库并删除记录。
这是一个糟糕的设计吗?我认为对实体的每次修改都需要调用SaveChanges()才能生效并保持数据库和内存对象之间正确的关系和映射。
我有一个像这样的dict对象结构:
var dict = {
11: 0,
12: 0,
13: 0
...
};
Run Code Online (Sandbox Code Playgroud)
我想做这个:
for (var i = 11; i < 42; i++) {
dict.Add(i, 0);
}
Run Code Online (Sandbox Code Playgroud)
但我知道"Add()"不是在dict对象上定义的函数.
所以,我怎么能一行一行地写11~42呢?
我想制作一个这样的滑块:

注意有一点"|" 在每个滑块值之间,用户只能选择那些值.
但我发现设置SmallChange和LargeChange没用.
<TextBlock FontSize="44" Text="{Binding ElementName=ColorDarknessStepsSlider, Path=Value}"/>
<Slider x:Name="ColorDarknessStepsSlider" Margin="-12,0" Minimum="3" Maximum="5"
SmallChange="1" LargeChange="1" />
Run Code Online (Sandbox Code Playgroud)
我希望用户只能选择3,4,5但它给我这个:

我不知道是什么问题.没有"|"我没事 在值之间标记,但至少用户必须只选择整数值3,4,5.我该怎么做?
我正在使用jCanvas构建一个HTML5应用程序,我需要删除一个图层,这是画布上的黑色圆圈,你可以在这里看到代码.
var cvLingualWidth = 945;
var cvLingualHeight = 100;
var cvLingual = document.getElementById("cvLingual");
function drawGrid() {
var contextLingual = cvLingual.getContext("2d");
for (var y = 0.5; y < cvLingualHeight; y += 6) {
contextLingual.moveTo(0, y);
contextLingual.lineTo(cvLingualWidth, y);
}
contextLingual.strokeStyle = "#DDD";
contextLingual.stroke();
}
function drawCircle() {
$("#cvLingual").drawArc({
layer: true,
name: "circleLayer_18",
strokeStyle: "#000",
strokeWidth: 2,
x: 42,
y: 70,
radius: 8
});
}
function clearCircle() {
var circleLayer = $("#cvLingual").getLayer("circleLayer_18");
// TODO
}
$(function () {
drawGrid();
drawCircle();
$("#clear").click(function(){ …Run Code Online (Sandbox Code Playgroud) ado.net ×1
arrays ×1
asp.net ×1
asp.net-mvc ×1
attributes ×1
c# ×1
canvas ×1
html5 ×1
javascript ×1
jcanvas ×1
jquery ×1
silverlight ×1
slider ×1
xaml ×1