我需要验证国际电话号码的用户输入.根据E.164,最大长度为15位,但我无法找到有关最小值的任何信息.我只考虑数字,没有加号或分隔符.
Request.Headers["Header-Name"]
ASP.NET中是否区分大小写?如果是,如果我不确定客户端将它发送到什么情况,我应该如何获得某个标题(例如"X-requested-with")?
我在Accounts和PaymentSystems之间有多对多的关系.我想列出尚未分配到帐户的所有PaymentSystems.为此,我尝试使用以下LINQ to Entities查询:
PaymentGatewayEntities pge = new PaymentGatewayEntities();
Account account = pge.Accounts.Single(item => item.id == accountId);
var paymentSystems = pge.PaymentSystems.Except(account.PaymentSystems);
Run Code Online (Sandbox Code Playgroud)
但是,在尝试显示结果时出现以下异常:"System.NotSupportedException:无法创建类型为'MyNamespace.Models.PaymentSystem'的常量值.只有基本类型('如Int32,String和Guid')在这种情况下得到支持." 我究竟做错了什么?我正在使用EF4.
UPD:var paymentSystems = pge.PaymentSystems.Where(item =>!item.Accounts.Contains(account))也会产生相同的异常.
如果每个请求只需要一个数字,那么在ASP.NET MVC应用程序中生成随机数的正确方法是什么?根据MSDN,为了获得足够质量的随机性,有必要使用创建一次的单个System.Random对象生成多个数字.由于为MVC中的每个请求创建了一个控制器类的新实例,因此我不能使用在控件的构造函数中为Random对象初始化的私有字段.那么我应该在MVC应用程序的哪个部分创建和存储Random对象?目前我将它存储在控制器类的静态字段中,并在使用它的action方法中懒惰地初始化它:
public class HomeController : Controller
{
...
private static Random random;
...
public ActionResult Download()
{
...
if (random == null)
random = new Random();
...
}
}
Run Code Online (Sandbox Code Playgroud)
由于"随机"字段可以被控制器类的多个实例访问,如果两个实例同时尝试初始化它,它的值是否可能被破坏?还有一个问题:我知道静态的生命周期是应用程序的生命周期,但是对于MVC应用程序,它是什么?它是从IIS启动到IIS关闭吗?
在我的ASP.NET MVC 2应用程序中,我使用HandleErrorAttribute在未处理的异常情况下显示自定义错误页面,除非在Ajax.ActionLink调用的操作中发生异常,否则它将完美运行.在这种情况下没有任何反应 是否可以使用HandleErrorAttribute用"Error.ascx"局部视图的内容更新目标元素?