我有一个在MVC3中使用html.RenderAction呈现的表单.
除此之外,我还有一个用于淘汰赛的jquery模板.使用默认的"data-val-required"属性将模型正确呈现到视图中.
但是我注意到jQuery验证总是返回true.
<div id="dlgAdd" data-bind="template: { name: 'editTemplate', data: selected }">
</div>
<script id="editTemplate" type="text/html">
<div>
@{
Html.RenderAction("EditDialog");
}
</div>
</script>
Run Code Online (Sandbox Code Playgroud)
EditDialog partial呈现以下输出:
<form method="post" id="frmAddNew" action="/Project/AddNew">
<div class="fields-inline">
<div class="editor-label">
<label for="Name">Name</label>
</div>
<div class="editor-field">
<input data-val="true" data-val-required="The Name field is required." id="Name" name="ko_unique_41" value="" type="text">
<span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>
</div>
</div>
<span id="validationmessage" class="field-validation-error"></span>
</form>
Run Code Online (Sandbox Code Playgroud)
但是,当我打电话时$("#frmAddNew").valid()),它总是返回'true'.我不知道它的淘汰赛,jQuery或mvc是否阻止验证返回false.
我正在寻找RegEx多行电子邮件地址。例如:
1) 单个电子邮件:
johnsmith@email.com - ok
Run Code Online (Sandbox Code Playgroud)
2)两行电子邮件:
johnsmith@email.com
karensmith@emailcom - ok
Run Code Online (Sandbox Code Playgroud)
3)两行电子邮件:
john smith@email.com - not ok
karensmith@emailcom
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*(\r\n)?)+)\r*
Run Code Online (Sandbox Code Playgroud)
但是当我测试它时,如果有 1 个有效的电子邮件地址,它似乎仍然匹配,如示例 3 所示。
我需要一个规定所有电子邮件地址必须有效的规则。
我正在使用Ko的特殊扩展版本,它在依赖的observable上使用commit()/ peek()类型函数,这样我只将数据保存到表单上(如果它已提交到数据库)(在Ok上)并且还原为取消.
我遇到的问题是当我选中一个复选框时,会在受保护的observable上正确调用write函数.但是,如果取消选中该复选框,则不会调用write函数,因此当模型发送到我的MVC控制器时,复选框boolean仍为TRUE.
为什么淘汰赛没有写出FALSE值?
更新的问题代码:
请在此处查看此JsFiddle以演示:http://jsfiddle.net/b2Qu2/3/
小问题
请注意,演示还有另外一个问题 - 出于某种原因,当我选中/取消选中该复选框时,即使将其链接到dependentObservable,也不会在UI上更新隐藏的值.您仍然可以通过单击"查看"按钮来查看值.
重大问题
重现问题:
1) Click 'peek' button: Shows FALSE - CORRECT
2) Check IsAdmin checkbox
3) Click 'peek' again: Shows TRUE - CORRECT
4) Uncheck IsAdmin
5) Click 'peek' again: SHOWS TRUE - INCORRECT!!
Run Code Online (Sandbox Code Playgroud)
示例场景
想象一下,会显示一个对话框,其中包含Admin用户的复选框.只有1个管理员用户可以设置,如果管理员用户已经存在,则服务器响应有效/无效.然后用户取消选中该复选框,但现在viewmodel认为该复选框始终为真?使用protectedObservable的原因是,如果服务器响应成功,则调用commit()方法,以便在UI上保留所有内容.如果用户取消对话框或发生错误,则不会覆盖原始值.
有人可以解释一下 SqliteDbOpenHelper 类中如何调用 onUpgrade 函数吗?我正在打开数据库,但即使我更改了 DB_VERSION,它也没有调用 onUpgrade。
请看下面的代码:
public class DbHelper extends SQLiteOpenHelper {
private static final String TAG = "DbHelper";
static final String DB_NAME = "caddata.sqlite";
static final int DB_VERSION = 4;
private static String DB_PATH = "";
private Context myContext;
private SQLiteDatabase myDataBase;
public DbHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
this.myContext = context;
DB_PATH = "/data/data/"
+ context.getApplicationContext().getPackageName()
+ "/databases/";
}
public DbHelper open() throws SQLException {
myDataBase = getWritableDatabase();
Log.d(TAG, "DbHelper Opening Version: " + this.myDataBase.getVersion()); …Run Code Online (Sandbox Code Playgroud) 假设我有一个与另一个表具有 1:0..1 关系的客户表,我通常会在客户表中有一个指向另一个表的 Nullable FK。
然而,假设与客户相关的附加可选数据片段的数量增加,并且仅出于论证目的,表的数量现在为 10 个。是否最好使用相同的架构,以便客户中有 10 个附加列表,如果没有存储额外的数据,则全部可能为空,或者让 FK 指向子级的客户表更好吗?这个模型看起来更简洁,因为我没有大量可为空的列,并且如果需要,我可以通过简单地添加新表和指向新表中的客户的新 FK 列来逐渐扩展系统。唯一的缺点是(查看数据库)您可以添加更多行来打破 1:0-1 关系规则。但是,我的应用程序无论如何都不会插入额外的行。
第一种方法要求我为添加到系统中的每个新表在客户表的末尾添加一个新列。
在这种情况下哪种方法最好?
我有我的模特:
public class EmailTemplateModel
{
public int EmailTemplateId { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Subject { get; set; }
[AllowHtml]
[Required]
public string Content { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器上:
[ValidateInput(false)]
public ActionResult AddNewTemplate(EmailTemplateEditorModel model)
{
}
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
从客户端检测到潜在危险的Request.Form值
为什么即使使用ValidateInput/AllowHtml属性禁用此检查,我也会收到这些错误?看看其他帖子,我不清楚我是否需要这两个或只是其中一个属性...
我在路径中有一个现有站点,并且我已将 DreamWeaver 站点指向它。
在\templates 下有一个master.dwt 文件。但是每当我保存这个文件时,应该使用它的 html 文件都不会改变。我需要做什么才能让 DW 更新使用它的 html 文件?以及 DW 如何根据模板更改知道应该更新哪些文件?它是否使用内部商店或其他东西,因为每次我将站点复制到另一台机器时,我都需要再次将所有页面链接到相关模板。
我试过进入修改| 模板 | 应用,但未列出模板。我在路径中有一个 .dwt 文件,为什么不把它捡起来?
是否可以对 Visual Studio 中的不同构建配置使用不同的预构建事件?例如,我想要测试版和实时系统的发布配置,并在编译之前将相关的 app.[type].config 复制到 app.config。
目前,配置设置被烘焙到 .settings 文件中,使用默认 app.config 文件中的设置。
我正在动态创建的 div 上创建我的 CKEditor。似乎 CKEDITOR.instances 持有 Id 为 'elementX' 的实例,其中 X 是创建的实例的索引。
我希望能够自己管理名称,以便在编辑器关闭时销毁编辑器。
我尝试使用 JQuery CKEDITOR 适配器包装器中的回调函数以及传递到编辑器的配置对象在 CKEDITOR 上设置“名称”属性,但我没有任何运气。
任何人都可以提出一种方法来确保 CKEDITOR 分配给编辑器的名称是可预测的,以便我可以销毁它吗?
我知道 CKEditor 似乎通常通过元素 ID 来命名编辑器。但是,我在元素上没有 id。
我希望能够在商店同步成功完成后向用户显示消息.但是,似乎没有任何方法可以使用回调或同步调用它.我有点惊讶这不是开箱即用,因为它一定是一个常见的问题.
这有什么解决方法吗?
knockout.js ×2
android ×1
asp.net-mvc ×1
ckeditor ×1
dreamweaver ×1
jquery ×1
jquery-ui ×1
regex ×1
sencha-touch ×1
sqlite ×1