小编Sha*_*rde的帖子

asp.net mvc3 - Controller方法返回View(viewName,string),但随之而来的是怪异

有没有人见过这个问题?我是一个ASP.NET MVC新手.我有一个使用.aspx和.ascx视图的ASP.NET MVC 3站点.在整个站点中,我使用返回View()或在我的控制器方法中返回View(viewName),它指向相应的aspx/ascx视图.但是,在我的股票AccountController(修改为使用DotNetOpenAuth)中,我采用相同的方法,但MVC框架不寻求aspx或ascx视图.相反,它正在搜索.cshtml或.vbhtml视图的路径(Razor引擎我假设).为什么它只是寻找像我网站其余部分的aspx和ascx视图?控制器方法如下:

public ActionResult Authenticate()
{
    var response = openid.GetResponse();
    var statusMessage = "";
    if (response == null)
    {
        Identifier id;
        //make sure your users openid_identifier is valid.
        if (Identifier.TryParse(Request.Form["openid_identifier"], out id))
        {
            try
            {
                //request openid_identifier
                return openid.CreateRequest(Request.Form["openid_identifier"])
                   .RedirectingResponse.AsActionResult();
            }
            catch (ProtocolException ex)
            {
                statusMessage = ex.Message;
                return View("LogOn", statusMessage);
            }
        }
        else
        {
            statusMessage = "Invalid identifier";
            return View("LogOn", statusMessage);
        }
    }
    else
    {
        //check the response status
        switch (response.Status)
        {
            //success status
            case AuthenticationStatus.Authenticated:
                Session["FriendlyIdentifier"] …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-3

10
推荐指数
1
解决办法
2万
查看次数

Amazon CloudFront Cache失效策略可确保新鲜内容和成本效益

我试图围绕我应该用什么方法来强制CDN刷新用户个人资料照片在网站上,其中CloudFront是提供个人资料照片的CDN,而S3是底层文件存储.

用户更新个人资料照片后,我需要确保用户个人资料照片是最新的.我看到有三个选项可以更新个人资料照片,并确保网站用户在修改个人资料照片后立即获取最新图像.在确保新鲜内容和最大长期成本效益方面,这些方法是否优于其他方法?是否有更好的方法来确保新鲜的内容和最大的长期成本效益?

  1. 发出一个S3放置对象请求以使用其原始文件名保存文件,并发出一个Amazon CloudFront失效请求.Amazon CloudFront每月最多允许1000次免费失效请求,这似乎有点偏低
  2. 发出一个S3delete对象请求以删除原始照片,然后一个S3放置对象请求以使用唯一的新照片文件名保存新照片.这将是每个文件更新的两个S3请求,并且不需要CloudFront CDN失效请求.然后,CloudFront会在更新后立即提供最新文件,并将图像URL自动设置为新文件名
  3. 发出一个S3放置对象请求以使用其原始文件名保存文件,然后客户端将版本代码附加到CDN URL(即/img/profilepic.jpg?x=timestamp)或该行的某些内容.我不确定这个策略在使缓存的CloudFront对象失效方面有多么有效

谢谢

amazon-s3 asp.net-mvc-3 amazon-cloudfront

6
推荐指数
1
解决办法
1288
查看次数

实体框架4.0函数导入 - 为什么它不会在我的对象上下文中显示为方法?

我有一个存储过程,我已经在我的实体框架模型中映射(尝试做我的第一个),并且我已经指定了一个函数import.存储过程返回一个数据集作为结果,该数据集映射到我的函数导入中的复杂类型.我正在使用VS.NET 2010.

我认为我已经完成了所有需要的典型工作,例如http://msdn.microsoft.com/en-us/library/bb896231.aspx.也没有模型错误.

为了能够调用我的函数导入,还有什么我需要做的吗?有没有其他人有类似的问题,他们已经创建了一个返回复杂类型的函数导入,但它没有显示为ObjectContext的可调用函数?如果没有,为了进一步调查,你有什么建议我调查吗?

编辑:我只是直接使用实体框架直接执行方法执行我的存储过程,http://msdn.microsoft.com/en-us/library/ee358758.aspx.好的部分是它仍然自动映射到我的复杂类型.虽然我很想使用函数导入方法...

谢谢

c# visual-studio-2010 entity-framework-4

2
推荐指数
1
解决办法
8563
查看次数

使用setTimeout进行基本JavaScript承诺测试

我正在尝试使用bluebird进行基本的承诺测试,但结果并不是我所期待的.我正在尝试将"我应该先登录吗?4000"消息首先登录到我的控制台,但第二个控制台消息总是首先显示.我做错了什么,在2000年消息之前我需要做些什么来获取"4000"消息?

function longRunningPositiveTest3() {
    return new Promise(function(resolve) {
        setTimeout(function () {
            console.log("Should I be logged first? 4000");
            resolve();
        }, 4000);
    });
}

function longRunningPositiveTest4() {
    return new Promise(function(resolve) {
        setTimeout(function () {
            console.log("Should I be logged first? 2000");
            resolve();
        }, 2000);
    });
}

Promise.resolve(longRunningPositiveTest3())
    .then(longRunningPositiveTest4());
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript promise bluebird

2
推荐指数
1
解决办法
562
查看次数