小编Kev*_*ang的帖子

你如何处理来自AJAX调用的错误?

假设我有以下jQuery AJAX调用:

$.ajax({
   type: "POST",
   url: "MyUrl",
   data: "val1=test",
   success: function(result){
        // Do stuff
   }
 });
Run Code Online (Sandbox Code Playgroud)

现在,当进行这个AJAX调用时,我希望服务器端代码运行一些错误处理检查(例如,用户是否仍然登录,他们是否有权使用此调用,数据是否有效等).如果检测到错误,如何将该错误消息重新发送回客户端?

我最初的想法是返回一个带有两个字段的JSON对象:error和errorMessage.然后将在jQuery AJAX调用中检查这些字段:

$.ajax({
   type: "POST",
   url: "MyUrl",
   data: "val1=test",
   success: function(result){
       if (result.error == "true") 
       {
           alert("An error occurred: " & result.errorMessage);
       }
       else 
       {
           // Do stuff
       }
   }
 });
Run Code Online (Sandbox Code Playgroud)

这对我来说有点笨拙,但它确实有效.还有更好的选择吗?

validation ajax jquery

24
推荐指数
2
解决办法
5万
查看次数

ASP.NET MVC Web应用程序中的控制器是应该调用存储库,服务还是两者?

我的ASP.NET MVC Web应用程序中的控制器开始变得有点臃肿与业务逻辑.Web上的示例都显示了简单的控制器操作,这些操作只是将数据从存储库中提取出来并将其传递给视图.但是如果你还需要支持业务逻辑呢?

比如说,履行订单的动作也需要发送电子邮件.我是否将其粘贴在控制器中并将此逻辑复制/粘贴到同时满足订单的任何其他操作?我的第一个直觉是创建一个像OrderFulfillerService这样的服务来处理所有这些逻辑并让控制器动作调用它.但是,对于从数据库中检索用户列表或订单等简单操作,我希望直接与存储库进行交互,而不是让服务包含该调用.

这是一种可接受的设计模式吗?控制器操作在需要数据访问时需要业务逻辑和存储库时调用服务?

.net asp.net-mvc

19
推荐指数
3
解决办法
4969
查看次数

ASP.NET MVC验证ViewState MAC失败

发布我的ASP.NET MVC Web应用程序的新版本后,我经常看到浏览到该站点时抛出此异常:

System.Web.Mvc.HttpAntiForgeryException:未提供所需的防伪标记或无效.---> System.Web.HttpException:viewstate MAC验证失败.如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法.AutoGenerate不能在群集中使用.---> System.Web.UI.ViewStateException:无效的viewstate.

在我的Web应用程序中访问的每个页面上都会继续发生此异常,直到我关闭Firefox.重新打开Firefox后,该网站运行良好.知道发生了什么事吗?

补充说明:

  1. 我没有使用任何ASP.NET Web控件(我的应用程序中没有runat ="server"的实例)
  2. 如果我从我的页面中取出<%= Html.AntiForgeryToken%>,这个问题似乎就会消失

asp.net-mvc

19
推荐指数
1
解决办法
6078
查看次数

你如何处理NHibernate中的并发?

你如何使用NHibernate支持乐观/悲观的并发?

nhibernate

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

防止对Web应用程序的字典攻击

什么是防止字典攻击的最佳方法?我已经想到了几个实现,但它们似乎都有一些缺陷:

  1. X登录尝试失败后锁定用户.问题:容易变成拒绝服务攻击,在很短的时间内锁定了许多用户.
  2. 增加用户名上每次登录尝试失败的响应时间.问题:字典攻击可能使用相同的密码但使用不同的用户名.
  3. 从IP地址逐次增加每次登录尝试失败的响应时间.问题:通过欺骗IP地址轻松绕过.
  4. 在会话中每次失败登录尝试的增量响应时间递增.问题:通过创建字典攻击很容易解决,该攻击会在每次尝试时触发新会话.

security cryptography

18
推荐指数
1
解决办法
4507
查看次数

构造一个Rails ActiveRecord where子句

使用Rails ActiveRecord构造where子句的最佳方法是什么?例如,假设我有一个控制器操作,它返回一个博客帖子列表:

def index
  @posts = Post.all
end
Run Code Online (Sandbox Code Playgroud)

现在,假设我希望能够传入url参数,以便此控制器操作仅返回特定作者的帖子:

def index
  author_id = params[:author_id]

  if author_id.nil?
    @posts = Post.all
  else
    @posts = Post.where("author = ?", author_id)
  end
end
Run Code Online (Sandbox Code Playgroud)

这对我来说感觉不太干.如果我要添加排序或分页或更糟糕的是,更多可选的URL查询字符串参数进行过滤,此控制器操作将变得非常复杂.

activerecord ruby-on-rails

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

你什么时候使用依赖注入?

我最近一直在使用StructureMap并且彻底享受了这种体验.但是,我可以看到如何通过连接所有内容轻松地将其带走,并最终获得将大量接口引入其构造函数的类.尽管在使用依赖注入框架时这确实不是一个大问题,但它仍然认为某些属性实际上不需要为了连接它们而需要接口.

你在哪里画出界面的界限而不仅仅是在课堂上添加一个属性?

dependency-injection

16
推荐指数
3
解决办法
1453
查看次数

从params哈希创建Rails ActiveRecord模型

大多数Rails教程展示如何通过params哈希填充模型类,如下所示:

class UsersController < ApplicationController   
    def create
        @user = User.create(params[:user])

        # more logic for saving user / redirecting / etc.     
    end  
end
Run Code Online (Sandbox Code Playgroud)

如果模型中的所有属性都应该是字符串,那么这很有用.但是,如果某些属性应该是整数或日期或其他类型,会发生什么?

例如,假设User类看起来像这样

class User < ActiveRecord::Base
    attr_accessible :email, :employment_start_date, :gross_monthly_income
end
Run Code Online (Sandbox Code Playgroud)

:email属性应该是一个字符串,:employment_start_date属性应该是一个日期,而:gross_monthly_income应该是一个小数.为了使这些属性具有正确的类型,我是否需要更改控制器操作以使其看起来像这样?

class UsersController < ApplicationController  
    def create
        @user = User.new
        @user.email = params[:user][:email]
        @user.employment_start_date = params[:user][:employment_start_date].convert_to_date
        @user.gross_monthly_income = params[:user][:gross_monthly_income].convert_to_decimal

        # more logic for saving user / redirecting / etc.
    end
end
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails

14
推荐指数
2
解决办法
3万
查看次数

如何在ASP.NET MVC中实现分页?

目前,我正在使用许多博客文章中找到的策略.基本上,URL包含页码(例如/ Users/List/5将为您的分页用户列表第5页上的用户提供).但是,我没有遇到一个页面必须列出两个单独的分页列表的情况.如何使用ASP.NET MVC进行此操作?我只提供两个url参数(例如/ Users/List?page1 = 1&page2 = 2)?使用部分视图有更好的方法吗?

asp.net-mvc paging

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

ASP.NET MVC路由问题

我必须密集.在对StackOverflow提出几个问题后,在掌握ASP.NET MVC提供的新路由引擎时,我仍然感到茫然.我想我已经把问题缩小到一个非常简单的问题,如果解决了,可能会让我解决其余的路由问题.所以这里是:

您将如何注册支持类似Twitter的用户配置文件的路由?

www.twitter.com/username

假设还需要支持:

  • 默认{controller}/{action}/{id}路由.

  • 网址如:

    www.twitter.com/login
    www.twitter.com/register

这可能吗?

asp.net-mvc routing

13
推荐指数
1
解决办法
1855
查看次数