几个星期前我创建一个帐户时,我犯了一个拼写错误.我更改了帐户,他们可以使用新名称登录到域.但是,我们内部的Web应用程序仍在使用错误的名称.
.net应用程序使用
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
Run Code Online (Sandbox Code Playgroud)
这给出了旧名称.
如果我使用
Environment.UserName
Run Code Online (Sandbox Code Playgroud)
我得到了正确的新名字.我在广告中错过了什么?在某处我可以更改名称,这将导致System.Security.Principal.WindowsIdentity.GetCurrent().Name; 给出正确的名字?
我没有.net的经验,所以如果问题有明显的答案,我很抱歉.
我有一个具有整数属性的模型.提交模型时23443,模型绑定器工作正常,并且该操作中的值可用.但是如果使用千位分隔符提交模型23,443,则不会解析该值并且属性为零.但我发现一个十进制类型的属性可能有千位分隔符,它会解析并正确填充.
我发现默认情况下Int32.Parse()不解析千位分隔符但Decimal.Parse()允许千位分隔符.我不想写支票,如:
public ActionResult Save(Car model, FormCollection form) {
Int32 milage;
if(model.MyProperty == 0 && Int32.TryParse(form["MyProperty"], NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out milage) {
model.MyProperty = milage;
} else
ModelState.AddModelError("Invalid", "Property looks invalid");
[...]
}
Run Code Online (Sandbox Code Playgroud)
每次我处理这些领域.它看起来很丑陋,并将所有验证移出模型属性.将属性的类型更改为十进制只是为了使模型绑定工作似乎不是一个明智的想法.当我查看模型绑定器时,它看起来像是TypeConverter用来完成从字符串到类型的转换.它看起来像Int32Converter使用Int32.Parse()与NumberStyles.Integer.
有没有办法改变行为Int32Converter以允许默认情况下解析千位分隔符?也许替代默认NumberStyles的Int32.Parse()整个应用程序?或者是添加我自己的模型绑定器,它使用NumberStyles.AllowThousands唯一/正确的操作过程解析整数?
我有一个分组UITableView,我在第0节只有一个单元格.我只想在第一部分隐藏分隔符.如果我使用tableView.separator = [UIColor clearColor],它会隐藏所有分隔符.有任何想法吗?
我正在尝试从 BindingSource 中过滤数据 - 但它不起作用。我究竟做错了什么?我已将我的代码简化为一个简约的示例。
问题是,如果我在 TextBox 中输入一些东西 - 没有任何反应。
public partial class Form1 : Form
{
BindingSource bs = new BindingSource();
public Form1()
{
InitializeComponent();
List<myObj> myObjList= new List<myObj>();
myObjList.Add(new myObj("LastNameA", "Peter"));
myObjList.Add(new myObj("LastNameA", "Klaus"));
myObjList.Add(new myObj("LastNameB", "Peter"));
foreach (myObj obj in myObjList)
{
bs.Add(obj);
}
dataGridView1.DataSource = bs;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
bs.Filter = string.Format("Name LIKE '%{0}%'", textBox1.Text);
dataGridView1.Refresh();
}
}
public class myObj
{
public myObj(string LastName, String Name)
{
this.LastName = LastName; …Run Code Online (Sandbox Code Playgroud) 每当我在C#中实例化这个类时,我都会收到StackOverflow错误.有谁能解释为什么?
class Money
{
public Money(decimal value, Currency usedCurrency)
{
Value = value;
UsedCurrency = usedCurrency;
}
public decimal Value
{
get { return Value; }
set { Value = Math.Round(value, 2, MidpointRounding.ToEven); }
}
public Currency UsedCurrency;
}
public enum Currency
{
USD,
EUR,
GBP,
CAD,
AUD
}
Run Code Online (Sandbox Code Playgroud)
这是一个实例化示例:
var money = new Money(100, Currency.USD);
Run Code Online (Sandbox Code Playgroud) 我在ASP.NET MVC Web应用程序中使用Entity Framework Code First,其中客户习惯在字符串末尾添加空格.
显然Trim()是解决这个问题的正确答案,但是记住在整个项目中修剪一切并不是正确的事情.做了一些挖掘并找到了ASP.NET MVC:在数据输入后修剪字符串的最佳方法.我应该创建自定义模型绑定器吗?他们在哪里创建了一个自定义模型绑定器,但我担心当绑定模型时,应用程序的每个页面加载都会有性能损失.看起来像SaveChanges()被称为修剪将是最有效的方式,因为事情将被存储修剪到数据库中.
所以我的问题是,覆盖SaveChanges()并获取所有添加和修改的对象,ObjectContext然后使用反射来修剪每个字符串,这是正确的事情吗?或者模型绑定器是正确的方法吗?
我在这里和其他网站浏览了不少线程,以解决这个问题.
这是我的FileMonitor类:
class FileMonitor
{
public FileMonitor(String path)
{
try
{
var watcher = new FileSystemWatcher()
{
Path = path,
IncludeSubdirectories = true,
InternalBufferSize = 65536,
EnableRaisingEvents = true
};
watcher.Changed += new FileSystemEventHandler(OnFileChanged);
watcher.Created += new FileSystemEventHandler(OnFileCreated);
watcher.Deleted += new FileSystemEventHandler(OnFileDeleted);
watcher.Renamed += new RenamedEventHandler(OnFileRenamed);
watcher.Error += new ErrorEventHandler(OnWatcherError);
}
catch (Exception)
{
throw;
}
}
private void OnWatcherError(object sender, ErrorEventArgs e)
{
}
private void OnFileChanged(object sender, FileSystemEventArgs e)
{
try
{
((FileSystemWatcher)sender).EnableRaisingEvents = false;
LogFileSystemChanges(e);
}
finally …Run Code Online (Sandbox Code Playgroud) 我想在提交表单之前检查是否所有文本框都已填满,我正在执行此操作的方式是这样的:
If strGebruikersnaam <> String.Empty And strVoornaam <> String.Empty And strFamilienaam <> String.Empty And strEmail <> String.Empty And strBevestigEmail <> String.Empty And strWachtwoord <> String.Empty And strBevestigWachtwoord <> String.Empty And strAntispam <> String.Empty Then
End If
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更有效的方法来做同样的事情.
我需要一种方法来确保我输入正确类型的值,这将使我达到我应该再次输入它们的程度.我不需要递归来到方法的开头,我需要一些东西到达我输入值的地方.我知道我应该使用循环,但我不知道该怎么做.这是方法的一部分:
console.writeline("Enter your value");
double kv = 0;
try
{
kv = Convert.ToDouble(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("Enter a number");
}
Run Code Online (Sandbox Code Playgroud) 以下一直让我有点疯狂.我发现了几个类似的问题,但他们没有提供解决方案.我试图发布一个包含一些数据项的json对象.其中一个是对象本身的列表.这里是:
{
"ClaimType":"Trade",
"ClaimedProductId":"4",
"ClaimingUserId":"2",
"Message":"test",
"TradeOffers":[
{
"OfferedProductId":"7",
"OfferedQuantity":"5"
},
{
"OfferedProductId":"12",
"OfferedQuantity":"2"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这个json验证了.
我的控制器看起来像这样:
public class ProductController : ApiController
{
[HttpPost]
public void Claim(ClaimViewModel claimViewModel)
{
//do some amazing stuff with the data from the viewmodel.
//sorry guys. This stuff is just tooo cool to be posted here for all to see
//NOT ;-)
}
}
Run Code Online (Sandbox Code Playgroud)
我发布的ClaimViewModel看起来像这样:
public class ClaimViewModel
{
public Claim.ClaimRequestTypes ClaimType { get; set; }
public int ClaimedProductId { get; set; } …Run Code Online (Sandbox Code Playgroud) c# ×8
.net ×2
asp.net-mvc ×2
asp.net ×1
code-first ×1
datagridview ×1
filter ×1
iphone ×1
json ×1
loops ×1
objective-c ×1
parsing ×1
reflection ×1
try-catch ×1
uitableview ×1
vb.net ×1