小编EBa*_*arr的帖子

骨干/下划线模板 - 渲染时为什么要调用toJSON?

当使用backbone.js和下划线的伴随模板引擎时,我注意到大多数示例model.ToJSON()在渲染时调用而不是仅仅传递model.我知道我的模板必须修改它检索数据的方式.

我想知道为什么我们从toJSON()得到什么好处?

典型例子

在典型示例model.toJSON()中,在渲染时调用.注意,为了简洁起见,我将模板作为字符串文字放入.

ToDoItemView = Backbone.View.extend({
   /* other viewey stuff */
   template : _.template( '<li><%=ToDoNote%></li>'),
   render   : function () {    
                   var out=  this.template(this.model.toJSON()); //<--JSON
                    $(this.el).html( out) }
                    return this;
                 }
 }); //end view
Run Code Online (Sandbox Code Playgroud)

一种替代方法

我挖掘了主干0.9.2并强调了1.3.3代码.在骨干中,注意到model.toJSON()以下内容:_.clone(this.attributes).在模板渲染引擎内,我编译的模板命名传递数据obj.

在看到这些片段之后,我意识到克隆属性是没有必要的.相反,我可以直接传入我的模型(虽然模板中有一些语法更改).就像是 ...

ToDoItemView = Backbone.View.extend({
   /* other viewey stuff */
   template : _.template( '<li><%=obj.get('ToDoNote')%></li>'), //<--notice GET()
   render   : function () {    
                   var out=  this.template(this.model);  //<-- look ma no json
                   $(this.el).html( result ) …
Run Code Online (Sandbox Code Playgroud)

backbone.js underscore.js

7
推荐指数
1
解决办法
6174
查看次数

如何在不设置Content-Disposition标签的情况下从控制器返回图像?

所以我使用MVC 2来提供来自Controller Action的一些图像.一般智慧(1,2,3)似乎是使用中的一个FileResult类型(FileStreamResult,FileContentResult或`FileContentResult').

FileResult但是,所有三个具体的都设置了Content-Disposition响应头attachment; filename{YourFileNameHere}=UTF-8.最终结果是,如果用户直接查看我的图像,而不是嵌入HTML,浏览器会显示保存对话框,而不是显示图像.我希望图像只是在浏览器中显示.

我想这就是我的问题:使用MVC 2返回图像结果的合适方法是什么,图像没有标记下载?

asp.net-mvc-2

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

如何使用Html.Partial()方法使用显式路径呈现局部视图

大家好,我正在使用MVC 3(Razor).我有以下问题:

我有一些共同的内容被分隔成局部视图.但是,不要把它放在默认位置(views/sharedviews/controller-name),我需要将它放在不同的位置(views/shared/new-folderview/controller-name/new-folder).

我试过这个:@Html.Partial("views/shared/new-folder/partial-view-name")甚至@Html.Partial("views/shared/new-folder/partial-view-name.cshtml"),但似乎MVC3只将参数视为视图名称,它完全忽略了任何路径信息.

也许我做错了什么,有人可以帮我吗?:)非常感谢你!

partial-views asp.net-mvc-3

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

Redis可以在进程中运行w/.net吗?

是否可以在.NET下运行Redis?

我理解Redis的一般用例是在进程之外,并且可能在另一台服务器上.我正在开发的应用程序需要进程内缓存和进程外缓存.我的想法是,我想在进程和进程外需求中使用相同的应用程序/库.

redis

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

是否可以从消息处理程序访问Controller/Action属性?

是否有实用的方法来访问从Message Handler/DelegatingHandler装饰控制器或操作的属性?

佩德罗Felix的博客文章,它看起来像消息处理程序的正在酝酿太早,直到控制器调度信息处理器运行的信息将不可用.正确?

关于我的用例:
我正在使用Thinktecture身份模型,能够在中找到AllowAnonymous属性是有用的AuthenticationHandler.

asp.net-web-api thinktecture-ident-model

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

如何设置Thread.CurrentPrincipal以在整个应用程序中使用?

在ASP.net应用程序中,我正在使用我编写的自定义成员资格提供程序的Login控件.我想要做的是Thread.CurrentPrincipal在用户通过身份验证后设置为我的自定义Principal对象.

我正在使用setter:Thread.CurrentPrincipal它为我设置了Principal对象,但是在所有后续线程上,这个CurrentPrincipal被默认值覆盖.

这是我的Login控件的Authenticate事件的代码:

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
    {
        string username = Login1.UserName;
        string password = Login1.Password;

        if (Membership.ValidateUser(username, password))
        {
            var login = sender as Login;
            var phoenixIdentity = new PhoenixIdentity("B", "Forms" , true);
            var principal = new PhoenixPrincipal(phoenixIdentity);

            Thread.CurrentPrincipal = principal;
            AppDomain.CurrentDomain.SetThreadPrincipal(principal);

            HttpContext.Current.User = principal;

            e.Authenticated = true;
        }
    }
Run Code Online (Sandbox Code Playgroud)

例如,假设我使用用户名A登录,一切顺利......验证通过,但我使用Identity对象中的用户名B对用户进行硬编码,该对象设置为我设置为CurrentPrincipal对象的Principal 对象.

当我CurrentPrincipal在此方法结束时检查哪个用户设置为Identity时,它表示它是用户B.但是当我加载另一个页面然后检查其身份CurrentPrincipal是什么时,它表示它是用户A.

那么,如何让我的CurrentPrincipal对象在所有其他线程中保持持久性,以及此Login控件何时/何时设置CurrentPrincipalThread 的对象?

asp.net authentication identity principal

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

是否有任何技术原因Simple Injector无法支持.NET 4.0上的Web API?

这真的是对这个问题的跟进.其中一个Simple Injector开发人员指出了一个关于Simple Injector的有用信息,我认为让它更易于访问是件好事.

那么,使用Web API 1和.NET 4.0支持Simple Injector是否有任何技术障碍?源代码很容易下载和编译.它似乎工作得很好.

c# dependency-injection simple-injector asp.net-web-api

5
推荐指数
1
解决办法
769
查看次数

多租户数据库中的复合键

我正在设计一个纯多租户数据库(一个数据库,一个模式),我想在我的大多数表中保留一个Tenant_Id作为安全措施,以确保数据不会落入错误的租户手中.看起来这需要每个表上的复合键.

例:

在单租户情况下,我会有一个主键:

Animal_Id (PK)  
Animal_Type  
Animal_Name  
Run Code Online (Sandbox Code Playgroud)

在多租户情况下,我会为Tenant_Id添加另一个主键:

Animal_Id (PK)  
Tenant_Id (PK)  
Animal_Type  
Animal_Name  
Run Code Online (Sandbox Code Playgroud)

是否在每个表中添加一个Tenant_Id列意味着我需要在每个表中都有一个复合键,或者有一种安全的方法可以避免这种情况吗?复合键是可以的,但如果可以,我想避免使用它们.

database security multi-tenant

4
推荐指数
1
解决办法
1281
查看次数

SqlDependency简单选择查询始终返回"无效"

我正在尝试让SqlDependency对象给我通知,但到目前为止我无法让它工作.

我发送的SQL查询是这样的:

SELECT [SocialMedia].[dbo].[Items].[Id]
  FROM [SocialMedia].[dbo].[Items]
Run Code Online (Sandbox Code Playgroud)

我已经尝试了w /和没有大括号,拥有完全限定名称,只有变量名称,以及中间的所有内容.

Id是类型Guid,我没有看到任何提及他们在创建通知查询文章中不能使用SqlDependency对象

我也试过发送多个列来查看是否可行.

  SELECT SocialMedia.dbo.Items.Id, 
         SocialMedia.dbo.Items.DateTimeCreated, 
         SocialMedia.dbo.Items.AuthorId
  FROM   SocialMedia.dbo.Items
Run Code Online (Sandbox Code Playgroud)

这也没有用.


这是我的表SQL:

USE [SocialMedia]

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
SET ANSI_PADDING ON

CREATE TABLE [dbo].[Items](
    [Id] [uniqueidentifier] NOT NULL,
    [DateTimeCreated] [datetimeoffset](7) NOT NULL,
    [AuthorId] [uniqueidentifier] NOT NULL,
    [Source] [varchar](max) NOT NULL,
    [PlaceId] [uniqueidentifier] NULL,
    [FullText] [varchar](max) NOT NULL,
    [Geography] [geography] NULL,
    [DateTimeAdded] [datetime] NULL,
 CONSTRAINT [PK_Items] PRIMARY KEY CLUSTERED ( [Id] ASC ) 
                 WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = …
Run Code Online (Sandbox Code Playgroud)

c# sql service-broker sqldependency

4
推荐指数
2
解决办法
7171
查看次数

backbone.js/underscore.js错误:没有方法'html'

当我尝试导入一个看起来像这样的模板时,我似乎遇到了使用backbone.js/underscore.js的砖墙:

<script type="text/template" id="overview_template">
<div>
  Sample text
</div>
</script>
Run Code Online (Sandbox Code Playgroud)

错误如下:

Uncaught TypeError: Object #<HTMLDivElement> has no method 'html' navigation.js:356 
Backbone.View.extend.render navigation.js:356 
Backbone.View.extend.initialize navigation.js:351 
g.View backbone-min.js:33 d backbone-min.js:38 
(anonymous function) navigation.js:379 
f.Callbacks.n jquery-1.7.1.min.js:2 
f.Callbacks.o.fireWith jquery-1.7.1.min.js:2 
e.extend.ready jquery-1.7.1.min.js:2 c.addEventListener.B
Run Code Online (Sandbox Code Playgroud)

触发错误的代码this.el.html(template);如下:

 var OverviewView = Backbone.View.extend({
  el: $('#overview_container'),

  initialize: function() {
       this.render();
  },

  render: function() {
    var template = _.template( $("#overview_template").html(), {} );
    this.el.html(template);
  },

  defaults: {
    tip_of_the_day: 'open',
    news: 'open',
    recent_presentations: 'open'
  },

  events: {
    "click .overview_subsection_header": "toggleSubsection"     
  },

  toggleSubsection: function …
Run Code Online (Sandbox Code Playgroud)

javascript ruby-on-rails backbone.js

4
推荐指数
1
解决办法
4327
查看次数