我有一个FilesModel用于更新字符串的简单模型Description和Archived一些(已上载的)文件的复选框的布尔值,并且FilesModel具有在FilesModelValidator发布此数据时运行的验证器.此验证器只会检查每个文件是否有描述.我知道它运行并正确返回基于我的调试到目前为止的空描述的错误.
但是,当控制器中的Action方法被赋予控制权时,ModelState与我期望的不同.描述字段中没有错误,但每个选中的复选框都有一个错误:"值'on'对于Archived无效."
这种验证在网站的其他区域运行得很好,所以我确定我会忽略一些微小的事情.有关为什么会发生这种情况以及如何解决这个问题的任何建议?
验证器
public FilesModelValidator()
{
RuleFor(f => f.Files)
.Must(AllHaveADescription).WithMessage("Must have a description");
}
public static bool AllHaveADescription(Files files)
{
// This is run on postback, and returns false when any Description is empty
return files.All(f => f.Description != null && f.Description.Length > 0);
}
Run Code Online (Sandbox Code Playgroud)
调节器
[HttpPost]
public virtual ActionResult Update(FilesModel model)
{
// At this point, ModelState contains an error for each checked checkbox
// and no errors …Run Code Online (Sandbox Code Playgroud) 我想知道EF4是否支持跨数据库关系?例如:
DB1
Author
Id
Name
Run Code Online (Sandbox Code Playgroud)
DB2
Posts
Id
Content
db1.Author.Id
Run Code Online (Sandbox Code Playgroud)
理想情况下,我需要做什么才能在我的ef4模型中获得这种关系?
你们有什么想法吗?
谢谢
在OSX上是否有与Linux DBus相同的功能?我的意思是,OSX上默认有"消息总线"吗?
免责声明: OSX新手在这里.
我有一个启用Ajax的CRUD应用程序.如果我显示数据库中的记录,则会显示每列的记录值,包括其主键.
对于绑定到页面上按钮的Ajax操作,我可以通过在呈现HTML服务器端时将ID直接打印到其onclick函数来设置其调用.例如,为了保存对记录的更改,我可以使用如下按钮,其中"123"是记录的主键.
<button type="button" onclick="saveRecord('123')">Save</button>
Run Code Online (Sandbox Code Playgroud)
有时我有Javascript生成HTML和Javascript的页面.在某些情况下,主密钥在代码中的该位置自然不可用.在这些情况下,我采用了一个快捷方式并生成了这样的按钮,从一个恰好在屏幕上显示的地方获取主键以供视觉消费:
...
<td>Primary Key: </td>
<td><span id="PRIM_KEY">123</span></td>
...
<button type="button" onclick="saveRecord(jQuery('#PRIM_KEY').text())">DoSomething</button>
Run Code Online (Sandbox Code Playgroud)
这肯定有效,但基于文本的值驱动数据库查询似乎是错误的,其目的是用户消费而不是方法消耗.我可以通过向各种方法添加一系列附加参数来解决这个问题,以便在最终需要时引入主键,但这看起来也很笨拙.
解决这个问题的最自然的方法是简单地将所有当前存在于外部文件中的Javascript置于<head>页面中.通过这种方式,我可以生成自定义Javascript方法,而无需传递尽可能多的参数.
除了可读性之外,我很难看到外部存储Javascript有什么好处.似乎它使得HTML/DOM和Javascript之间已经很弱的联姻更加遥远.
我看到有些人建议我将Javascript保留为外部,但是在页面本身上设置了各种"自定义"变量,例如,在PHP中:
<script type="text/javascript">
var primaryKey = <?php print $primaryKey; ?>;
</script>
<script type="text/javascript" src="my-external-js-file-depending-on-primaryKey-being-set.js"></script>
Run Code Online (Sandbox Code Playgroud)
这比仅仅将所有Javascript放在页面上更好吗?HTML和Javascript仍然在很大程度上依赖于彼此.
我有一个显示第三方网页的UIWebView(不是我可以控制的页面)
我需要一种方法将网页视图的内容滚动到该页面中的特定位置.
知道如何实现它吗?
谢谢.
我有一个系统,其中employeeId必须总是存在,除非存在一些潜在的问题.
我看到的方式是,我有两个选择来检查这段代码:
1:
public void GetEmployee(Employee employee)
{
bool exists = EmployeeRepository.VerifyIdExists(Employee.Id);
if (!exists)
{
throw new Exception("Id does not exist");
}
}
Run Code Online (Sandbox Code Playgroud)
或2:
public void GetEmployee(Employee employee)
{
EmployeeRepository.AssertIfNotFound(Employee.Id);
}
Run Code Online (Sandbox Code Playgroud)
选项#2在C#语言中是否可以接受?
我喜欢它,因为它很整洁,因为我不喜欢在类范围内查看"抛出新异常("bla bla bla")类型的消息.
首先,公平警告:我是C#和WPF的全新手.
我有一个组合框(可编辑,可搜索),我希望能够拦截删除键并从列表中删除当前突出显示的项目.当我输入电子邮件地址时,我正在寻找的行为就像MS Outlook的行为.当您提供几个字符时,会显示潜在匹配的下拉列表.如果您移动到其中一个(使用箭头键)并单击"删除",则会永久删除该条目.我想通过组合框中的条目来做到这一点.
这是XAML(简化):
<ComboBox x:Name="Directory"
KeyUp="Directory_KeyUp"
IsTextSearchEnabled="True"
IsEditable="True"
Text="{Binding Path=CurrentDirectory, Mode=TwoWay}"
ItemsSource="{Binding Source={x:Static self:Properties.Settings.Default},
Path=DirectoryList, Mode=TwoWay}" />
Run Code Online (Sandbox Code Playgroud)
处理程序是:
private void Directory_KeyUp(object sender, KeyEventArgs e)
{
ComboBox box = sender as ComboBox;
if (box.IsDropDownOpen && (e.Key == Key.Delete))
{
TrimCombobox("DirectoryList", box.HighlightedItem); // won't compile!
}
}
Run Code Online (Sandbox Code Playgroud)
使用调试器时,我可以看到box.HighlightedItem我想要的值,但是当我尝试输入该代码时,它无法编译:
System.Windows.Controls.ComboBox' does not contain a definition for 'HighlightedItem'...
那么:我如何访问该值?请记住,该项目尚未被选中.它只是在鼠标悬停在它上面时突出显示.
谢谢你的帮助.
这是显示调试器显示的屏幕截图.我徘徊在"盒子"上,当显示单行摘要时,我然后盘旋在+ char上以展开到这个图像:
alt text http://www.freeimagehosting.net/uploads/2cff35d340.gif
前言:我不明白这是做什么的:
o => o.ID, i => i.ID, (o, id) => o
Run Code Online (Sandbox Code Playgroud)
所以对我很轻松.:-)
我有2个列表需要加入:
// list1 contains ALL contacts for a customer.
// Each item has a unique ID.
// There are no duplicates.
ContactCollection list1 = myCustomer.GetContacts();
// list2 contains the customer contacts (in list1) relevant to a REPORT
// the items in this list may have properties that differ from those in list1.
/*****/// e.g.:
/*****/ bool SelectedForNotification;
/*****/// may be different.
ContactCollection list2 = myReport.GetContacts();
Run Code Online (Sandbox Code Playgroud)
我需要创建第三个ContactCollection,其中包含list1项目属性的所有联系人 …
我的sql server 2008数据库上有以下触发器
CREATE TRIGGER tr_check_stoelen
ON Passenger
AFTER INSERT, UPDATE
AS
BEGIN
IF EXISTS(
SELECT 1
FROM Passenger p
INNER JOIN Inserted i on i.flight= p.flight
WHERE p.flight= i.flightAND p.seat= i.seat
)
BEGIN
RAISERROR('Seat taken!',16,1)
ROLLBACK TRAN
END
END
Run Code Online (Sandbox Code Playgroud)
当我尝试运行下面的查询时触发器抛出错误.这个查询我应该在两个不同的航班上的数据库中插入两个不同的乘客.我确定两个座位都没有被占用,但我无法弄清楚为什么触发器会给我错误.是否必须对相关做一些事情?
INSERT INTO passagier VALUES
(13392,5315,3,'Janssen Z','2A','October 30, 2006 10:43','M'),
(13333,5316,2,'Janssen Q','2A','October 30, 2006 11:51','V')
Run Code Online (Sandbox Code Playgroud)
更新:该表如下所示
CREATE TABLE Passagier
(
passengernumber int NOT NULL CONSTRAINT PK_passagier PRIMARY KEY(passagiernummer),
flight int NOT NULL CONSTRAINT FK_passagier_vlucht REFERENCES vlucht(vluchtnummer)
ON UPDATE NO ACTION …Run Code Online (Sandbox Code Playgroud) 我想编写自己的网络模拟器,以获得乐趣和个人挑战.我希望学习新的编程技术,以及更多关于网络的知识.以前面向对象的尝试很快就结束了,但我最近下载并使用了微软的Axum(今天发布的新版本)以及他们的并发和协调运行时.由于我来自一个非常OO的主导背景,我以前从未听说过面向Actor的编程; 现在看来我已经把头埋在沙子中,直到Scala和F#给我带来了范例.
我的问题是:a)面向演员的编程比面向对象的编程更适合这项任务,如果是这样的话b)哪里是开始学习演员导向设计的好地方?
c# ×3
asp.net-mvc ×1
dbus ×1
insert ×1
iphone ×1
javascript ×1
linq ×1
linux ×1
macos ×1
oop ×1
sql ×1
triggers ×1
uiwebview ×1
validation ×1
wpf-controls ×1