我正在尝试将验证附加到映射视图.我正在使用Knockout Mapping and Validation插件.少女模特儿:
Person {
int Id;
string Name;
Book[] Books;
}
Book {
int Id;
string Name;
}
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
function viewModel() {
var self = this;
self.persons = ko.observableArray();
// persons are retrieved via AJAX...
ko.mapping.fromJS(persons, {}, self.persons);
}
jQuery(function( $ ) {
ko.applyBindings(new viewModel());
});
Run Code Online (Sandbox Code Playgroud)
如何扩展observableArray人员以设置验证规则和消息?我需要验证人员和书籍子数组属性.我发现只有使用显式模型设置的示例,没有自动映射,例如:
Name: ko.observable().extend({ required: true })
Run Code Online (Sandbox Code Playgroud)
然后我需要设置ko.validatedObservable,isValid和validation.init,但我真的不知道如何处理/组织这个.你能帮忙吗?
我有一个带有2个控制器的自主Web API:
我试图在控制器初始化期间设置格式化程序,但配置似乎是全局的,影响所有控制器:
public class CustomConfigAttribute : Attribute, IControllerConfiguration
{
public void Initialize(HttpControllerSettings settings,
HttpControllerDescriptor descriptor)
{
settings.Formatters.XmlFormatter.UseXmlSerializer = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
我正在尝试将表单序列化值发布到控制器(Web API Self Host).我无法理解为什么NameValueCollection没有正确绑定.客户端使用jQuery:
// Form Submit Handler
$( '#form-parameters' ).submit(function (event) {
event.preventDefault();
var formData = $(this).serialize();
// Post serialized form data
postAssemblyParameters(formData);
});
// Post Form Data to controller test
function postAssemblyParameters(formData){
$.ajax({
url: http://localhost/api/test/1,
type: 'POST',
data: formData,
dataType: 'application/x-www-form-urlencoded',
success: function(x3d) {
},
error: function(xhr) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
服务器端使用Web API Self Host:
public void Post([FromUri] int id, [FromBody] NameValueCollection formData)
{
Console.WriteLine(id); // OK
// Collection is NULL
foreach (var key in formData.AllKeys)
{
foreach …Run Code Online (Sandbox Code Playgroud) 我有以下内容:http://jsfiddle.net/KywJT/
function dragEnter(evt) {
evt.stopPropagation();
evt.preventDefault();
$(evt.target).addClass('over');
}
function dragLeave(evt) {
evt.stopPropagation();
evt.preventDefault();
$(evt.target).removeClass('over');
}
function drop(evt) {
evt.stopPropagation();
evt.preventDefault();
$(evt.target).removeClass('over');
}
jQuery( function ( $ ) {
var $box = $( "#box" );
$box.bind("dragenter", dragEnter);
$box.bind("dragleave", dragLeave);
$box.bind("drop", drop);
});
Run Code Online (Sandbox Code Playgroud)
我使用的是Chrome版本24.0.1312.52 m和最后一个jQuery(1.8.3).当我将文件放入框中时,浏览器不会阻止默认beaviour.你能帮我么?
PS dragexit被弃用了吗?
我在.NET 4.5上使用C# - Web API Self Host.服务器端我有一个非线程安全的进程:它可以一次处理一个请求.如何在控制器代码中锁定此资源(进程),以便顺序提供客户端,等待资源在使用之前被释放?就像是:
while(true){
if(!process.isLocked)
break;
}
lock(process)
do(work)
unlock(process)
warn(others)
Run Code Online (Sandbox Code Playgroud)
任何代码段或建议都表示赞赏.提前致谢.