对不起长的主题名称...
如果我执行以下操作:
using (var transaction = session.BeginTransaction())
{
// do something
transaction.Commit();
}
Run Code Online (Sandbox Code Playgroud)
如果我做了什么导致异常,它会自动回滚,还是我需要明确检查如下:
using (var transaction = session.BeginTransaction())
{
try
{
// do something
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
}
}
Run Code Online (Sandbox Code Playgroud) 我如何获得Ninject.Extensions.Interception基本上让我将特定的拦截器绑定到任何具有属性的方法... psudocode:
Kernel.Intercept(context => context.Binding.HasAttribute<TransactionAttribute>())
.With<TransactionInterceptor>
Run Code Online (Sandbox Code Playgroud)
有一个类:
public SomeClass
{
[TransactionAttribute]
public void SomeTransactedMethod()
{ /*do stuff */ }
}
Run Code Online (Sandbox Code Playgroud) 我有CORS在我当前的项目上工作,虽然我似乎无法正常工作的一件事是cookie.
现在我得到cookie很好,服务器发出它并发送它并且firefox接受它,我可以在firebug cookies部分看到它.但是,当我对该服务进行后续调用时,它似乎不会在标题中发送cookie ...
GET /some/entity/ HTTP/1.1
Host: localhost:1837
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: */*
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://localhost:6879
Origin: http://localhost:6879
Run Code Online (Sandbox Code Playgroud)
我的ajax电话需要做些什么吗?
var ajaxOptions = {
url: serviceResourceUrl,
type: "get",
dataType: "json",
success: successCallback,
error: failedCallback,
xhrFields: { withCredentials: true }
};
$.ajax(ajaxOptions);
Run Code Online (Sandbox Code Playgroud) 我试图将现有的asp mvc app移植到使用knockoutjs(纯js/html),因为我不再需要asp mvc中的任何功能.然而,我可以预见的一个问题是我处理我的一些页面的方式.
我有一个页面,其中包含大约12个局部视图,每个部分都有自己的模型.现在使用Knockout JS看起来每页应该只有1个viewmodel/view,但是我的页面包含大量信息,这些部分类似于:
如果部分细节发生变化,使事情变得更加棘手,则需要更改另一部分的数据.所以,让我们说你删除一张卡然后需要告诉资金控制它不再有卡,所以不会有资金.(这是一个抽象的例子,但希望说明一点)
所以我有点不确定如何在淘汰赛中做到这一点,因为我宁愿将它作为一个大型模型,我会很乐意做,但它包含大量的信息.除了多个表单,您可以更新地址而无需更新其他所有内容.
那么我应该为这个视图制作一个大型模型并处理它吗?或者有没有办法让观点相互交谈?
我正在查看很多可用的Knockout JS文档,但是它似乎没有像我期望的那样遵循MVVM模式(当看维基百科的MVVM定义时).
在所有示例中,它们似乎都显示了ViewModel和Views的源代码,但是从来没有模型,现在似乎模型应该包含的大部分功能(保存/检索数据表示)都放在ViewModel中.我认为也许ViewModel实际上更像是模型,你可以免费获得的绑定层是ViewModel,因为它可以完成所有绑定......
所以我只是想知道我在这里遗失了什么?因为我现在有一个问题,我的UI逻辑应该去哪里,即添加水印,Inter-View聊天等,我还没有真正得到一个可靠的答案,所以想确认我对模式使用的理解在继续之前,在此框架内是正确的.
我有一个视图,其中包含一个模板,该模板具有循环遍历模型数组的foreach.但是,模型数组来自ajax调用.
以下是该场景的示例:
// Contained Model
function SomeModel() {
var self = this;
this.Firstname = ko.observable();
this.Lastname = ko.observable();
this.Fullname = ko.dependentObservable(function() {
return this.Firstname + " " + this.Lastname;
}, self);
}
// View Model
function SomeViewModel() {
var self = this;
this.ArrayOfModels = ko.mapping.fromJS([]);
this.GetModelsByAjax = function() {
$.ajax(...);
};
this.SuccessfullyRetrievedModelsFromAjax = function(models) {
ko.mapping.updateFromJS(self.ArrayOfModels, models);
};
}
ko.applyBindings(new SomeViewModel());
Run Code Online (Sandbox Code Playgroud)
这是视图:
<HtmlGuff>
<div data-bind="template: {name: 'model-template', foreach: ArrayOfModels}"></div>
</HtmlGuff>
// Template
<HtmlGuff>
<h2 data-bind="text: Fullname">
<div data-bind="text: Firstname" /> …
Run Code Online (Sandbox Code Playgroud) 有一个简单的自动完成框(jquery ui),它从Web服务获取源代码.代码如下所示:
var autocompleteOptions = {
source = getDataFromService,
minLength: 3
};
var getDataFromService = function(request, response) {
var ajaxOptions = {
url: "http://myservice:1234/somedata/",
dataType: "jsonp",
data: "someVariable = " + request.term,
success: function(data) { alert("data"); },
error: function(xhr, description, error) { alert("failed"); }
};
$.ajax(ajaxOptions);
}
$(someSelector).autocomplete(autocompleteOptions);
Run Code Online (Sandbox Code Playgroud)
看着fiddler,甚至在Firefox firebug面板中,我可以看到JSON被正确返回,服务器响应是200.我甚至检查了创建的jsonp脚本片段,它也包含正确的JSON.然而,它始终击中错误功能而不是成功的错误功能.
我也尝试过使用complete并手动从xhr获取数据,但是responseText和responseXml都是未定义的.包含的错误表示解析错误,但它似乎在语法上都是正确的json,因为firebug面板和fiddler都显示正常.
HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: 28 Jun 2011 11:17:04 GMT
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 2.0
Cache-Control: private
Content-Type: application/json; charset=utf-8
Content-Length: 29
Connection: Close
[{"id":"1", "somevar":"hello"}]
Run Code Online (Sandbox Code Playgroud) 我怀疑这是可能的,但只是想确认一下.
我正在编写一个简单的WPF应用程序,并希望我的样式在外部定义,因此您基本上可以将样式作为外部资源加载.有点像CSS和HTML通常分开...
然而,有一件事让我感到困惑的是,对于HTML和CSS而言,它更像是一种外在的方法,CSS以元素为目标并应用于匹配元素.然而,对于WPF来说,它似乎是另一种方式,你必须告诉元素应该应用哪些样式,但这似乎不是很动态.所以我只想知道是否有一种方法可以应用样式,因此样式只是针对元素.
一个例子是:
<Style TargetType="{x:Type TextBox}" TargetElement="{x:Name SomeTextboxElement}">
<Setter Property="Width" Value="Auto"/>
</Style>
Run Code Online (Sandbox Code Playgroud)
通常你必须指定一个带有样式的键,然后获取要映射到样式键的元素(SomeTextboxElement).
只是显然给每个元素一个样式绑定看起来有点傻了,它应该更加层次化并过滤掉(这可能是,我只是不知道如何)而不是一对一的映射.永远需要为整个应用程序设计风格......
希望有道理......
只是为了澄清,因为我无法在标题中找到足够的信息......
我正在做一个跨站请求并坚持CORS,这一切都有效.浏览器发送一个选项请求,我的服务响应一堆接受标题,然后浏览器接受200响应并发送帖子.如果您不需要任何信息,请随意跳过标题输出:
初始选项请求:
OPTIONS http://localhost:1837/authentication HTTP/1.1
Host: localhost:1837
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Origin: http://localhost:6879
Access-Control-Request-Method: POST
Access-Control-Request-Headers: x-requested-with
Pragma: no-cache
Cache-Control: no-cache
Run Code Online (Sandbox Code Playgroud)
选项回应:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Thu, 30 Jun 2011 09:50:43 GMT
X-AspNet-Version: 4.0.30319
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Max-Age: 1000
Access-Control-Allow-Headers: CONTENT-TYPE, x-requested-with
Access-Control-Allow-Origin: http://localhost:6879
X-AspNetMvc-Version: 3.0
Cache-Control: private
Content-Length: 0
Connection: Close
Run Code Online (Sandbox Code Playgroud)
发布请求:
POST http://localhost:1837/authentication HTTP/1.1 …
Run Code Online (Sandbox Code Playgroud) 我有一个简单的javascript ajax请求:
$("#login-submit").button().click(function() {
var ajaxOptions = {
url: "http://localhost:29097/authentication/",
type: "POST",
data: $("login-form").serialize(),
success: function(result) { $("body").html(result); }
};
$.ajax(ajaxOptions);
});
Run Code Online (Sandbox Code Playgroud)
但是每当我发送请求时,它总是发送一个OPTIONS请求,而不是指定的POST请求.在阅读之后,似乎可能是跨网站发布.我在我的MVC应用程序中添加了一个自定义操作过滤器,用于检查OPTION请求并使用"允许"标头进行响应,指定"GET,POST,PUT,DELETE",尽管它似乎永远不会执行后续POST请求...我是在这里遗失什么?
请求(在Firefox,Chrome中试过):
OPTIONS http://localhost:29097/authentication/ HTTP/1.1
Host: localhost:29097
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Origin: null
Access-Control-Request-Method: POST
Access-Control-Request-Headers: x-requested-with
Run Code Online (Sandbox Code Playgroud)
响应:
HTTP/1.1 401 Unauthorized
Server: ASP.NET Development Server/10.0.0.0
Date: Sun, 19 Jun 2011 16:20:41 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 3.0
Allow: GET, …
Run Code Online (Sandbox Code Playgroud) 我目前有一些问题,我有一个Cufon/Validation设置方法,需要在加载模板时调用.由于某些原因,在模板加载完成之前似乎并不总是正确激活(当前在documentReady中调用设置).
有没有办法做类似的事情:
template: { name: "myTemplate", loaded: someCallback }
Run Code Online (Sandbox Code Playgroud)
我在文档中没有看到任何关于此的内容,但我不确定是否有一些最佳实践可以支持这一功能.
javascript ×5
ajax ×4
jquery ×4
knockout.js ×4
cors ×2
aop ×1
cookies ×1
css ×1
http ×1
jsonp ×1
mvvm ×1
nhibernate ×1
ninject ×1
rest ×1
transactions ×1
wpf ×1