是否有一个很好的策略来记录ASP MVC应用程序上的用户活动?(ActionFilters/HTTPModules).
像上次用户活动的东西(就像StackOverflow"23分钟前看到的那样"),甚至是使用的页面和控制器,并进一步推动了点击的按钮或链接.
我安装了ELMAH但据我所知它只是用于错误记录.
PD:谷歌分析不是一个选项.
我有一个类型数组MyType[] types;
,我想制作和独立的数组副本.我试过这个
MyType[] types2 = new MyType[types.Length] ;
types2 = types ;
Run Code Online (Sandbox Code Playgroud)
但这会创建对第一个的引用.然后我试过了
Array.Copy( types , types2 , types.Length ) ;
Run Code Online (Sandbox Code Playgroud)
但我有同样的问题:更改第一个数组中的值也会更改副本中的值.
如何制作数组,IList或IEnumerable的完全独立或深层副本?
我使用jquery在JavaScript中编写一些逻辑,我必须根据REGEX模式检查输入内容:
"^[a-zA-Z0-9_]*$" //Alpha-numeric and _
Run Code Online (Sandbox Code Playgroud)
逻辑差不多完成,我只是在过滤功能键DEL时遇到一些问题,我的逻辑是这样的:
var FunctionsKey = new Array(8, 9, 13, 16, 35, 36, 37, 39, 46);
function keypressValidation(key) {
if (config.regexExp != null) {
if ($.inArray(key, FunctionsKey) != -1) {
return true;
}
else {
var keyChar = String.fromCharCode(key);
return RegexCheck(keyChar);
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
如果KeyCode是数组中的其中一个,我让它通过,如果不是我得到char并将它与REGEX进行比较.问题是:在一些浏览器中DEL和'.' (期间标志)具有相同的密码46.
那么是否有一个更好的逻辑来过滤功能键或者我必须为该情况写一个条件,可能从数组中删除46并尝试将其转换为char,如果是(.)让它转到正则表达式函数,如果没有让它通过?另一个问题是在某些浏览器中是否有更多的共享密钥代码?
编辑:我建议的解决方案不会工作,因为用户按下哪个键(DEL或句点)无关紧要我至少在OPERA和FF =(.
我在这里使用PredicateBuilder http://www.albahari.com/nutshell/predicatebuilder.aspx,一切都很好,现在我可以生成动态LINQ到SQL表达式,但我不明白的是为什么当我在这样的循环上:
var inner = PredicateBuilder.False<MyType>();
foreach (var f in Filtermodel.InstrumentsFilterList.Where(s => s.isActive))
{
int temp = f.InstrumentID;
inner = inner.Or(ud => ud.InstrumentId == temp);
}
Run Code Online (Sandbox Code Playgroud)
为什么我必须使用那个临时变量?,我尝试使用"f"迭代器变量,但它只获取列表中每个迭代的最后一个值,就像它通过引用传递一样...
我需要使用以下格式返回JSON:
{"answers": [{"id": "93", "value":"Ahstron"},
{"id"="94", "value"="Sampers"}]}
Run Code Online (Sandbox Code Playgroud)
我使用返回Json()方法形式ASP MVC框架,有没有办法指定这个JSOn是示例代码中的答案集合?或者我必须创建自己的?
随着
return Json(answers);
Run Code Online (Sandbox Code Playgroud)
我得到这个:
[{"id": "93", "value":"Ahstron"},
{"id"="94", "value"="Sampers"}]}
Run Code Online (Sandbox Code Playgroud) public void Linq40()
{
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var numberGroups =
from n in numbers
group n by n % 5 into g
select new { Remainder = g.Key, Numbers = g };
foreach (var g in numberGroups)
{
Console.WriteLine("Numbers with a remainder of {0} when divided by 5:",
g.Remainder);
foreach (var n in g.Numbers)
{
Console.WriteLine(n);
}
}
}
Run Code Online (Sandbox Code Playgroud)
什么是纯粹的c#等价物?我明白了......
var numberGroups = numbers.GroupBy(n => n …
Run Code Online (Sandbox Code Playgroud) 我有这段代码,为了简洁省略了很多东西,但场景是这样的:
public class Billing
{
private List<PrecalculateValue> Values = new List<PrecalculateValue>();
public int GetValue(DateTime date)
{
var preCalculated = Values.SingleOrDefault(g => g.date == date).value;
//if exist in Values, return it
if(preCalculated != null)
{
return preCalculated;
}
// if it does not exist calculate it and store it in Values
int value = GetValueFor(date);
Values.Add(new PrecalculateValue{date = date, value = value});
return value;
}
private object GetValueFor(DateTime date)
{
//some logic here
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个List<PrecalculateValue> Values
存储我已计算的所有值供以后使用的地方,我这样做主要是因为我不想为同一个客户端重新计算两次,每次计算涉及大量操作,需要500到1000毫秒,由于孔计费类中涉及一些递归,因此很有可能重用该值.
所有这些都完美地工作,直到我进行测试,我在两个不同的客户端同时进行两次计算,并且该行Values.Single(g …
c# ×3
asp.net-mvc ×2
ajax ×1
arrays ×1
audit-trail ×1
collections ×1
group-by ×1
javascript ×1
jquery ×1
json ×1
keyboard ×1
keypress ×1
linq ×1
linq-to-sql ×1
logging ×1