假设我有以下viewmodel:
public class TaskViewModel{
public MTask Task {get;set;}
public List<DocIdentifier> Documents {get;set;}
.....
}
public class DocIdentifier{
public string DocID {get;set;}
public bool Selected {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
这是Fluent Validation我使用的验证器:
public class TaskValidator : AbstractValidator<TaskViewModel>{
public TaskValidator{
}
}
Run Code Online (Sandbox Code Playgroud)
如何确保列表中至少有一个DocIdentifier对象Documents具有其Selected属性值True?
我刚刚接到一个新任务来引导由其他人创建的网站.但我绝对是网络新手.该网站是在ASP.NET,C#中.除了Session对象之外,代码本身并不难理解.我不明白它的使用位置,方式和原因.请问有人用可能的例子解释Session对象的用法吗?
PS这两行是什么意思?
lblPensValue.Text = sh.pensDec((string)Session["connSTR"], 113, 23);
and
if ((string)Session["connSTR"] == null)
Run Code Online (Sandbox Code Playgroud) 我在使用TO_NUMBER函数第二个和第三个参数时遇到问题.其中一个是否依赖另一个?nls_params参数如何工作?我无法理解查询的结果如何
SELECT TO_NUMBER('17.000,23',
'999G999D99',
'nls_numeric_characters='',.'' ')
REFORMATTED_NUMBER
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)
可以是17000.23.有人可以解释上述转换的过程.
PS上述查询来自Oracle数据库SQL专家证书准备手册.
我已经获得了将MS SQL Server中的大型数据库转换为Oracle的任务。该数据库有150多个表,这些表具有许多存储过程和触发器,其中包含许多约束,默认值和关系。现在我想知道两件事:
提前致谢。
当我在IIS 7.5(Windows Server 2008 R2 x64)上浏览Visual Studio 2008中开发的ASP.Net应用程序时,我收到配置错误,指出无法找到Oracle.DataAccess,Version = 2.111.7.20文件.我已经安装了包含该文件的Oracle Data Provider for .NET.当我设置ODP.net时,它将dll文件放入c:\ app ....\odp.net\PublisherPolicy文件夹.我只是将这些文件复制到C:\ Windows\Microsoft\Framework文件夹,但我仍然得到了同样的错误.有人可以帮我解决这个问题吗?任何帮助是极大的赞赏
我最近意识到RequiredAttribute不适用于枚举字段.假设我在表单上有两个名为ddlOfficers和ddlApplicationTypes的选择元素,这些元素都是在HtmlHelper方法的帮助下渲染的.创建ddlOfficers的辅助方法如下:
@Html.DropDownListFor(x => x.OfficerID, Model.Officers, "<Choose>", new { id = "ddlAddressedOfficer" })
Run Code Online (Sandbox Code Playgroud)
WhereID是一个 Nullable<int>
对于ddlApplicationTypes,我必须编写一个扩展方法,让我为枚举字段创建下拉列表:
@Html.EnumDropDownListFor(x => x.ApplicationType, new { @class = "select-normal" })
Run Code Online (Sandbox Code Playgroud)
其中ApplicationType的类型为自定义枚举,称为AppType
public Enum AppType{
None=0,
Complaint,
Query,
Suggestion
}
Run Code Online (Sandbox Code Playgroud)
我使用RequiredAttribute修饰了OfficerID和ApplicationType属性.当我没有在ddlOfficers上选择任何内容时,我会在提交时收到验证警告.但是当我没有在ddlApplicationType上选择任何内容时,我没有收到任何警告.我可能知道问题的原因:如果我比较两个选择元素,我可以看到ddlOfficers的第一个选项(选择)没有指定值,选中后会导致验证抱怨.但是ddlApplicationType的第一个选项的值为"None".因此,验证引擎会看到所选选项具有值并且只是忽略它.你有什么建议让它工作?
编辑:为了使事情更清楚,这里看到的是两个选择元素的html:
<select class="select-normal input-validation-error" data-val="true" data-val-required="Choose the addressed officer" id="ddlOfficers" name="OfficerID">
<option value=""><Choose></option>
<option value="1">Ben Martin</option>
<option value="2">Nick Carter</option>
<option value="3">Sebastian Van</option>
</select>
<select class="select-normal valid" data-val="true" data-val-required="Select the application type" id="ddlApplicationType" name="ApplicationType">
<option selected="selected" value="None"><Choose></option>
<option value="Complaint">Complaint</option>
<option value="Query">Query</option>
<option value="Suggestion">Suggestion</option>
</select>
Run Code Online (Sandbox Code Playgroud) 我不得不说标题太差了,无法描述问题,但这是我唯一能想到的.无论如何,假设我得到了以下枚举:
public enum DocumentType{
IdCard=0,
Passport,
DriversLicense
}
Run Code Online (Sandbox Code Playgroud)
我有一个方法接受一个字符串并返回上面的枚举:
public DocumentType GetDocTypeByString(string docType){
switch (docType)
{
case "ID":
return DocumentType.IdCard;
case "PASS"
return DocumentType.Passport;
//and so on
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果传递的字符串不符合任何切换条件怎么办?最愚蠢的事情是制作返回类型对象,但这是某些人几乎不会做的事情.如果enum是我的,我会添加一个名为"None"的附加值,并在没有匹配的情况下返回,但我无法控制它.然后我想,是否可以将输入约束到某些值.就C#而言,我几乎完全相信它是不可能的,但无论如何我决定问.在这种情况下你会推荐吗?
其实我的问题分为两部分。
InputStream inputStream = ftpClient.retrieveFileStream(ftpParameters.getSourceFileName());
这是测试类:
public class SimpleFtpFileImporterTest {
FtpParameters ftpParams =new FtpParameters();
SimpleFtpFileImporter fileImporter=new SimpleFtpFileImporter();
FTPClient ftpMock= mock(FTPClient.class);
@Before
public void startup(){
this.ftpParams.setServer("10.0.206.126");
this.ftpParams.setPort(21);
this.ftpParams.setUserName("mikola");
this.ftpParams.setPassword("password");
this.ftpParams.setSourceFileName("readme.txt");
}
@Test
public void returnNullWhenFileCouldNotBeFetchedCompletely() throws IOException{
when(ftpMock.completePendingCommand()).thenReturn(false);
fileImporter=new SimpleFtpFileImporter(ftpMock);
byte[] bytes= fileImporter.downloadFile(ftpParams);
assertNull(bytes);
}
}
Run Code Online (Sandbox Code Playgroud)
这是被测系统:
public class SimpleFtpFileImporter implements IFileImporter {
private FTPClient ftpClient;
static Logger logger = Logger.getLogger(SimpleFtpFileImporter.class);
static {
PropertyConfigurator.configure("config/log4j.properties");
}
/**
* Creates a SimpleFtpFileImporter class instance passing …Run Code Online (Sandbox Code Playgroud) 有时在网站中,当您点击某个链接时,会出现一个新的浏览器窗口,其中没有后退按钮且地址栏不可编辑,它被锁定(灰色),因此您无法更改URL.只是一个包含一些信息或文本框的框,用于输入数据.我想知道为什么.这是因为某些安全问题还是还有其他问题?
我遇到了一个非常奇怪的Oracle序列行为.我有以下顺序:
CREATE SEQUENCE SEQ1 INCREMENT BY 10 START WITH 100 MAXVALUE 200 CYCLE NOCACHE;
Run Code Online (Sandbox Code Playgroud)
以下是"OCA/OCP Oracle数据库11g一体化考试指南"的摘录:
CYCLE控制达到MAXVALUE或MINVALUE时的行为.默认行为是给出错误,但是如果指定了CYCLE,则序列将返回其起始点并重复.
从这里我推断,在达到200的MAXVALUE后,我将得到100,因为起点是100.但令人惊讶的是我得到了一个.这是为什么?
oracle ×4
asp.net ×2
asp.net-mvc ×2
c# ×2
.net ×1
address-bar ×1
browser ×1
constraints ×1
cycle ×1
enums ×1
ftp-client ×1
function ×1
junit ×1
mockito ×1
sequence ×1
session ×1
sql-server ×1