这是场景:
我在网页上有一个文本框和一个按钮.单击该按钮时,我想要打开一个弹出窗口(使用Thickbox),该窗口将显示与文本框中输入的值匹配的所有项目.我目前正在使用Thickbox的IFrame实现.问题是要显示的URL被硬编码到按钮的"alt"属性中.我真正需要的是"alt"属性将文本框中的值传递给弹出窗口.
这是迄今为止的代码:
<input type="textbox" id="tb" />
<input alt="Search.aspx?KeepThis=true&TB_iframe=true&height=500&width=700" class="thickbox" title="Search" type="button" value="Search" />
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想将文本框值放入Search.aspx网址,但我似乎无法弄清楚如何做到这一点.我目前的替代方法是使用jQuery设置"搜索"按钮的单击功能,以调用将在ASP.NET会话中设置某些值的Web服务.然后,Search.aspx页面将使用会话变量进行搜索.但是,这有点不稳定,因为在设置会话变量之前似乎总是存在搜索执行的可能性.
我正在尝试对我的ASP.NET MVC应用程序中的页面进行单元测试,当发布到该页面时,将删除用户的项目.我想限制此页面,以便它只能由所述项目的所有者发布.最初,我想在控制器中快速检查,检查HttpContext.Current.User.Identity.Name是否等于项目的所有者,但我很快意识到单元测试这将很困难.
我应该创建一个提供访问当前登录用户名称的方法的界面吗?
假设我有一个名为Search.aspx的搜索页面,它将搜索字符串作为url参数ala Google(例如Search.aspx?q = This + is + my + search + string).
目前,我的页面上有一个asp:TextBox和一个asp:Button.我正在处理按钮的OnClick事件并将代码隐藏文件重定向到Search.aspx?q =
当你没有代码隐藏重定向时,ASP.NET MVC怎么样?你会创建一个GET表单元素,而不是发布到Search.aspx?或者你会以其他方式处理重定向(例如,附加到按钮的jQuery事件)?
假设您有一个域实体用户,并且您希望支持用户将项目添加到购物车的功能.现在,我们要确保购物车中的项目是唯一的,因此我们在User类中创建以下函数:
function AddItemToCart(Item item)
{
// Add business logic to make sure item is unique
}
Run Code Online (Sandbox Code Playgroud)
这非常有效.但是,如果我们现在想要在项目添加到购物车时也通过电子邮件发送给用户呢?我们可以将它添加到AddItemToCart中,但它需要将一些IEmailer依赖项注入User类.
另一种方法是创建一个服务来处理这个事务(例如ShoppingCartService),它将执行业务逻辑并发送电子邮件.然而,这会导致一个相当贫乏的领域(即用户类只不过是getter/setters)
我目前正在使用StructureMap使用以下代码注入NHibernate ISessions的实例:
ObjectFactory.Initialize(x =>
{
x.ForRequestedType<ISession>()
.CacheBy(InstanceScope.PerRequest)
.TheDefault.Is.ConstructedBy(y => NHibernateSessionManager.Instance.GetSession());
});
Run Code Online (Sandbox Code Playgroud)
我假设CacheBy(InstanceScope.PerRequest)将正确处理它创建的ISession,但我想确定.测试这个的最简单方法是什么?
我正在使用HttpWebRequest对象通过HTTP POST访问Web服务。部分要求是我:
HttpWebRequest是否自动为我处理?我假设如果出现这些情况中的任何一个,我将得到标准的“无法为SSL / TLS安全通道建立信任关系”异常。
我在GitHub上有一个部署到Heroku的应用程序.即使我在没有安装Git的计算机上,我也可以通过GitHub网站更改存储库中的文件.但是,我不确定是否可以在不调用"git push heroku"的情况下将这些更改部署到Heroku.有谁知道这是否可能?
我正在维护一个充满RPC样式*Web服务的遗留应用程序.例如,我们有以下服务用于从系统创建和删除用户:
客户端通过HTTP POST提交XML数据来调用这些服务.XML请求包含服务器处理请求所需的所有信息(即认证信息,用户信息).然后,服务器使用包含客户端应该知道的任何信息的XML文档进行响应(例如,成功/失败标志和描述).
我感兴趣的是将这些RPC样式服务切换到更RESTful架构的好处是什么.据我所读,这意味着以下内容:
现在据我所知,将这些服务更改为更RESTful架构的主要好处是:
我错过了什么吗?我觉得使用RESTful架构会有更多好处.
*请注意,当我说"RPC样式"时,我并不是指XML-RPC或SOAP等标准化格式.
我有以下控制器在收到对/ tags的HTTP请求时返回标记列表
class TagsController < ApplicationController
caches_page :index
def index
respond_to do |format|
format.json {
render :json => Tag.all(:order => "name").to_json
}
end
end
end
Run Code Online (Sandbox Code Playgroud)
我注意到每当对/ tags发出请求时,Rails就会在/public/tags.json上生成一个缓存文件.但是,似乎永远不会使用此缓存文件.相反,它始终运行SQL查询来检索标记:
Started GET "/tags" for 127.0.0.1 at 2011-06-15 08:27:29 -0700
Processing by TagsController#index as JSON
Tag Load (0.7ms) SELECT "tags".* FROM "tags" ORDER BY name
Write page <project root path>/public/tags.json (0.3ms)
Completed 200 OK in 35ms (Views: 1.1ms | ActiveRecord: 0.7ms)
Run Code Online (Sandbox Code Playgroud)
为什么Rails不使用正在生成的缓存文件?是因为请求是/ tags而不是/tags.json?
我的gemfile中安装了"guard-rspec"gem:
group :development do
gem "guard-rspec"
gem "growl"
end
Run Code Online (Sandbox Code Playgroud)
当我运行后卫时,它执行我的rspec单元测试并在结束时输出此消息:
Finished in 2.69 seconds
81 examples, 0 failures, 4 pending
/Users/KevinPang/.rvm/gems/ruby-1.9.2-p180/bin/rspec: No such file or directory - growlnotify --version
Run Code Online (Sandbox Code Playgroud)
请注意,如果我实际在终端中输入该路径(/Users/KevinPang/.rvm/gems/ruby-1.9.2-p180/bin/rspec),它会执行rspec:
/Users/KevinPang/.rvm/gems/ruby-1.9.2-p180/bin/rspec
No examples found.
Finished in 0.00003 seconds
0 examples, 0 failures
Run Code Online (Sandbox Code Playgroud) asp.net ×2
asp.net-mvc ×2
.net ×1
architecture ×1
c# ×1
caching ×1
certificate ×1
git ×1
github ×1
growl ×1
guard ×1
heroku ×1
jquery ×1
nhibernate ×1
rest ×1
rpc ×1
rspec ×1
security ×1
structuremap ×1
tdd ×1
thickbox ×1
vb.net ×1
web-services ×1