我有以下型号:
class Company < ActiveRecord::Base
has_and_belongs_to_many :regions
class Region < ActiveRecord::Base
has_many :requests
has_and_belongs_to_many :companies
class RequestForProposals < ActiveRecord::Base
belongs_to :region
Run Code Online (Sandbox Code Playgroud)
每当我收到新请求时,我都会向同一地区的公司发送通知.
如何在我的灯具中进行设置,以便我可以单独测试找到合适公司的逻辑?
我试过了
region_ids: 1, 2
regions: one, two
Run Code Online (Sandbox Code Playgroud)
在companies.yml中,但都不适用于为公司分配区域.
以下是SQL生成的要点:https://gist.github.com/2713518
我试图让用户从我们的网站下载Excel电子表格,通过一个重定向的按钮:
Response.Redirect(string.Format("../excel/ExcelForm.aspx?pathName=&fileNameDisplay={0}&fileNameUnique={1}", "spreadsheet.xls", fileName));
Run Code Online (Sandbox Code Playgroud)
aspx页面只是通过Response对象发回文件,如下所示:
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileNameDisplay);
Response.WriteFile(Server.MapPath(pathName + fileNameUnique));
Response.Flush();
Response.End();
Run Code Online (Sandbox Code Playgroud)
在我的机器上一切正常,但是当我们将它放在服务器上时,https与无缓存设置相结合会给我们一个错误,说"Internet Explorer无法下载[blahblahblah]".显示excel按钮的页面上的缓存设置:
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Expires = 0;
HttpContext.Current.Response.AddHeader("Pragma", "no-cache");
HttpContext.Current.Response.AddHeader("cache-control", "private, no-cache, must-revalidate no-store pre-check=0 post-check=0 max-stale=0");
HttpContext.Current.Response.Cache.SetNoServerCaching();
Run Code Online (Sandbox Code Playgroud)
当我删除这些行时,一切正常.但是,由于其他原因,我不允许删除它们.所以我尝试在将标题添加到标题之前将以下行添加到ExcelForm.aspx:
Response.ClearHeaders();
Run Code Online (Sandbox Code Playgroud)
这只是给了我"Internet Explorer无法从[url]下载ExcelForm.aspx".那就是我被困住的地方.建议?
我们目前正在为.NET开发设置源代码控制/构建/更多服务器,我们正在考虑使用Team Foundation Server(这需要花费很多成本)或者结合多个开源选项,如SourceForge Enterprise/GForge和Subversion以及CruiseControl.net等.有没有人走完全面的OSS之路,或者只有当你想要做到正确并很快开始工作时才是TFS吗?
我将数据从CSV文件导入临时表,然后将它们与"真实"表合并.
对于我的其他表,这很好用.但对于这个特定的文件和表格,似乎没有任何事情发生.
CREATE TABLE #ManifestHeader (
[ROTATIONNUMBER] [nvarchar](12) NOT NULL,
[ROTATIONVERSIONNO] [nvarchar](2) NOT NULL,
[IMONUM] [nvarchar](50) NULL,
[VESSELNAME] [nvarchar](35) NOT NULL,
[VOYAGENO] [nvarchar](17) NOT NULL,
[CARRIERCODE] [nvarchar](10) NULL,
[CARRIERNAME] [nvarchar](35) NULL,
[ETA] [datetime] NULL,
[ETD] [datetime] NULL,
[ACTUALARRIVALDATE] [datetime] NULL,
[LASTPORTOFCALL] [nvarchar](5) NULL,
[PORTARRIVAL] [nvarchar](5) NULL,
[PORTNEXT] [nvarchar](5) NULL,
[PORTFINAL] [nvarchar](5) NULL,
[BERTHINGDATE] [datetime] NULL,
[CDRSTARTDATE] [datetime] NULL,
[CDRENDDATE] [datetime] NULL,
[CDRSUBMISSIONDATE] [datetime] NULL,
[NUMOFBOLS] [int] NULL,
)
BULK INSERT #ManifestHeader
FROM 'D:\csvfiles\ManifestHeader.csv'
WITH ( FIELDTERMINATOR = '<,>', ROWTERMINATOR = …Run Code Online (Sandbox Code Playgroud) 在"如何:防止ASP.NET中的跨站点脚本"中的步骤1的说明中指出,您应该"不依赖于ASP.NET请求验证.除了您自己的要求之外,还将其视为额外的预防措施.输入验证."
为什么不够呢?
我将东西保存在Isolated Storage文件中(使用IsolatedStorageFile类).它运行良好,我可以从GUI层调用DAL层中的保存和检索方法时检索保存的值.但是,当我尝试从同一项目中的另一个程序集中检索相同的设置时,它会给我一个FileNotFoundException.我做错了什么?这是一般概念:
public void Save(int number)
{
IsolatedStorageFile storage = IsolatedStorageFile.GetMachineStoreForAssembly();
IsolatedStorageFileStream fileStream =
new IsolatedStorageFileStream(filename, FileMode.OpenOrCreate, storage);
StreamWriter writer = new StreamWriter(fileStream);
writer.WriteLine(number);
writer.Close();
}
public int Retrieve()
{
IsolatedStorageFile storage = IsolatedStorageFile.GetMachineStoreForAssembly();
IsolatedStorageFileStream fileStream = new IsolatedStorageFileStream(filename, FileMode.Open, storage);
StreamReader reader = new StreamReader(fileStream);
int number;
try
{
string line = reader.ReadLine();
number = int.Parse(line);
}
finally
{
reader.Close();
}
return number;
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用所有GetMachineStoreFor*范围.
编辑:因为我需要几个程序集来访问文件,所以除了它是一个ClickOnce应用程序之外,它似乎不可能与隔离存储有关.
我有两个集合(通用列表),我们称之为ListA和ListB.
在ListA中,我有一些类型为A的项目.在ListB中,我有一些类型B的项目具有与ListA中的项目相同的标识(但不是同一类型),还有更多项目.我想删除ListB中与ListA中ID相同的所有项目.这样做的最佳方法是什么?Linq对象很合适吗?你会用什么算法?
例
ListA:ItemWithID1,ItemWithID2¨
ListB:ItemWithID1,ItemWithID2,ItemWithID3,ItemWithID4
编辑:我忘记在原始问题中提到ListA和ListB不包含相同的类型.因此,比较它们的唯一方法是通过.Id属性.这使我到目前为止得到的答案无效.
我们已将我们的解决方案从.NET 2.0转换为.NET 3.5.所有项目都转换得很好,除了网站项目,它仍然不明白我使用'var'之类的意思.
我查看了Web项目的属性页面,Target Framework设置为".NET Framework 3.5".
还有其他想法吗?
我正在尝试完成一个看似非常简单的事情:从我的单元测试中,我想用mock/fake对象替换正在解析的类型.
例如:xml config声明服务IInterface的组件应解析为ClassA.这很好,但是从我的单元测试中我想要将类型解析为FakeClassA.我不能为此使用container.AddComponent,因为"已经为给定键注册了一个组件......".
.net c# dependency-injection castle-windsor inversion-of-control
我有一个ajaxtoolkit AutoCompleteExtender,其位置为:absolute.我把它放在一个位置为div的div中.这使得扩展程序下拉放置在所有浏览器上都是完美的,除了在Chrome/Safari上,其位置相对于窗口的左上角而不是div.
当我使用与为AutoCompleteExtender生成的HTML相同的css类和内联样式放置另一个ul时,定位在Chrome中正常工作.因此扩展器有一些特定的东西使它在HTML代码的底部呈现(在结束标记之前,因此在计算其位置时不使用div作为它的父级).
我有什么想法可以解决这个问题?
码:
<div class="searching">
<ajaxToolkit:AutoCompleteExtender
runat="server"
ID="biznameOrCategoryAutoComplete"
TargetControlID="txtBizNameOrCategory"
ServicePath="~/AutoComplete.asmx"
ServiceMethod="GetBiznameOrCategoryCompletionList"
MinimumPrefixLength="1"
CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="10"
CompletionListCssClass="autocomplete_completionCompyNameListElement"
CompletionListItemCssClass="autocomplete_listItem"
CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
ShowOnlyCurrentWordInCompletionListItem="true">
</ajaxToolkit:AutoCompleteExtender>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.searching {
margin-left:5px;
padding-top:10px;
width:366px;
position: relative;
}
.autocomplete_completionCompyNameListElement {
background: #fff;
font-family:Arial, Helvetica, sans-serif;
font-size: 17px;
width: 340px !important;
left: 20px !important;
border: 1px solid #d9d9d9;
font-size: 12px;
top: 48px !important;
padding: 2px 4px !important;
}
Run Code Online (Sandbox Code Playgroud) 我在我创建的ASP.NET项目中创建了一个Table的子类.该表使用一个类来格式化并创建TableRows和TableCells,我们可以将其称为RowCreator.因此,MyTable调用rowCreator.CreateRow()并返回一个包含很多好东西的TableRow.
在这个TableRow中有一个TextBox,它应该在onblur事件上触发一个javascript方法,该方法由RowCreator类添加.
textBox.Attributes.Add("onblur", "javascriptMethod('" + textbox.ClientID + "');");
我也尝试创建一个textBox的子类,它实现了一个添加onblur事件的方法:
Attributes.Add("onblur", "javascriptMethod('" + this + "');")
哪个不起作用.ID只是文本框子类的名称空间.
而JavaScript方法非常简单:
function javascriptMethod(boxId) {
alert(boxId);
}
问题是,我猜这是因为尚未将文本框控件添加到控件集合中,boxId不是正确的客户端ID.它与服务器端ID相同.有没有办法获得正确的ID而不必首先在页面上使用Controls.Add添加行?还有其他建议吗?
我甚至这样做的原因是,只要它被更改,就从javascript函数中读取文本框内容.也许有更好的方法来做到这一点?
我有一个表单在发送电子邮件之前经过一些验证.
我已经尝试使用它进行验证,其中方法ValidateInput根据输入设置ModelState:
[HttpPost]
public ActionResult Create(FormCollection collection)
{
ValidateInput(collection);
if (ModelState.IsValid == false) return View(collection);
Run Code Online (Sandbox Code Playgroud)
如果某些内容无效,则会清除所有输入的字段.我想在字段中保留所有输入的数据.我怎样才能做到这一点?
c# ×7
.net ×6
asp.net ×5
.net-2.0 ×1
.net-3.5 ×1
activerecord ×1
ajax ×1
asp.net-3.5 ×1
asp.net-mvc ×1
bulkinsert ×1
collections ×1
css ×1
csv ×1
excel ×1
fixtures ×1
https ×1
javascript ×1
modelstate ×1
open-source ×1
ruby ×1
sql ×1
sql-server ×1
svn ×1
tfs ×1
validation ×1
xss ×1