剑道UI模型验证只在本地环境下工作
Kendo UI Model validation only working on local environment
我正在使用剑道UI与ASP。asp.net MVC 3。我们有一个页面,我们使用MVC包装器的剑道网格,绑定到模型类注释验证需求。
在本地部署时一切正常,但在我们的测试服务器上部署时,验证不起作用。经过仔细检查,我发现Kendo MVC包装器为列定义生成的javascript结果对每个列的"editor"字段具有不同的值。
在我们的测试服务器上运行时,"editor"字段的值缺少输入元素的data-val属性。
产生这种差异的原因是什么?我们已经仔细检查过了,这两个部署使用的是同一个源。此外,在测试环境中,其他一切都正常工作。
这是本地部署时其中一列上的"editor"字段的值:
"editor":"'u003cinput class='"text-box single-line'" data-val='"true'" data-val-regex='"Invalid Platform Name!'" data-val-regex-pattern='"^[a-z A-Z]+$'" data-val-required='"The PlatformName field is required.'" id='"PlatformName'" name='"PlatformName'" type='"text'" value='"'" /'u003e'u003cspan class='"field-validation-valid'" data-valmsg-for='"PlatformName'" data-valmsg-replace='"true'"'u003e'u003c/span'u003e"
下面是测试服务器上为同一列生成的内容:
"editor":"'u003cinput class='"text-box single-line'" id='"PlatformName'" name='"PlatformName'" type='"text'" value='"'" /'u003e'u003cspan class='"field-validation-valid'" id='"PlatformName_validationMessage'"'u003e'u003c/span'u003e"
模型:
public class PlatformModel
{
public int Id { get; set; }
[Required]
[RegularExpression(@"^[a-z A-Z]+$", ErrorMessage = "Invalid Platform Name!")]
[CustomValidation(typeof(ApproverGroupValidator), "IsEntryNull")]
public string PlatformName { get; set; }
[Required]
public string AclGroup { get; set; }
[Editable(false)]
public bool IsDefault { get; set; }
}
MVC包装:@(Html.Kendo().Grid<PlatformModel>().Name("ManagePlatformGrid")
.Columns(columns =>
{
columns.Bound(c => c.Id).Hidden();
columns.Template(@<img />).ClientTemplate("# if(!IsDefault) { #<div class='btnGridDelete' onclick='"deleteRow(this, 'ManagePlatformGrid', 'Platform', 'DeletePopoutPF')'"><span>X</span></div># } #")
.Width(30)
.HeaderHtmlAttributes(new { style = "border-left-width:0px;border-right-width:0px;" })
.HtmlAttributes(new { style = "border-left-width:0px;" });
columns.Bound(c => c.PlatformName).Title("Platform Name")
.HeaderHtmlAttributes(new { style = "border-left-width:0px;" })
.HtmlAttributes(new { style = "border-left-width:0px;text-align:right;" })
.Width(160);
columns.Bound(c => c.AclGroup).Title("ACL Group");
})
.Sortable()
.Editable(editable => editable.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Bottom))
.Events(events => events.DataBound("PlatformBound"))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.Read(read => read.Action("GetPlatform", "ApproverGroupTeam"))
.Model(model => model.Id(c => c.Id))
.Create(create => create.Action("CreatePlatform", "ApproverGroupTeam"))
.Update(update => update.Action("UpdatePlatform", "ApproverGroupTeam"))
.Destroy(create => create.Action("DeletePlatform", "ApproverGroupTeam"))
.Events(events => events.Error("PlatformHaveErrors"))
)
)
问题是我们使用的是Web。配置转换和缺少两行:
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
在我们的Web. test .config文件中,所以即使它们出现在主Web中。在我们的测试环境中,appSettings部分被缺少这些设置的部分所替换。
相关文章:
- 运行时环境究竟是如何工作的
- 根据工作环境缩小和取消缩小 js
- 为什么我的程序在我的测试环境中工作,而不是我的实时站点
- 为什么我的 javascript 在测试环境中工作,但在实时站点上不起作用
- Javascript 未捕获类型错误仅在实时环境中,在 Dev 上工作正常
- 为什么控制台.log在JSC环境中不起作用,但它可以在Safari的调试控制台中工作
- AngularJS过滤器和ng模型如何在JavaScript环境中工作
- 如何使控制器/视图特定的Javascript在Rails3.1生产环境中工作
- 带有'slidedown'函数在我的虚拟环境中工作,但不是真实的环境
- NPM环境变量不能在windows中工作
- 为什么我的javascript在现场停止工作,但在测试环境中工作得很好
- UglifyJS无法在Symfony2生产环境中工作
- JQuery验证不能在非英语语言环境中工作
- 为什么Bootstrap's下拉开关在某些环境下工作,而在其他环境下不起作用?
- OBJ MTL加载器与环境光不工作
- Fancybox打开问题-在JSFiddle上工作,但不能在现场环境中工作
- 为什么设置了NODE_DEBUG=fs环境变量但不工作
- 剑道UI模型验证只在本地环境下工作
- 替换在触摸屏环境中工作的Title属性
- Javascript/Regex:Expression在一个环境中工作,而不是在另一个环境