小编mb6*_*666的帖子

使用Knockout JS + MVC +服务器端模型验证显示错误?

使用Knockout JS和jQuery模板控制Html表单.基本的jQuery验证用于验证字段.表单被序列化为JSON并使用AJAX提交给MVC控制器操作.MVC控制器操作执行服务器端模型验证,向ModelState添加错误.

  1. 将这些错误返回给客户端的最佳做法是什么 - 在ModelState中迭代错误并将它们添加到JSON响应中的错误的键/值集合中?

  2. 你如何在客户端上显示错误?如何将错误的键/值集合"绑定"到模型的相关字段?

假设模型上有一个"名称"字段,jQuery模板呈现相应的文本框.如何在错误集合中的"名称"字段中获取错误,并在"名称"文本框下方显示错误消息?

validation asp.net-mvc json model knockout.js

14
推荐指数
1
解决办法
6640
查看次数

mvc3 OutputCache RemoveOutputCacheItem RenderAction

我做了我的研究,但没有找到任何答案.

我在主页中使用Html.RenderAction(用于呈现具有特定于用户权限的链接的页眉).Action使用OutputCache修饰,返回部分控件并按预期缓存.

当事件发生时(假设权限已更改)我想以编程方式使缓存的部分控件无效.

我正在尝试使用RemoveOutputCacheItem方法.它将路径作为参数.我正在尝试设置Html.RenderAction中使用的操作的路径.这不会使行动失效.

如何以编程方式使操作无效?

谢谢

outputcache asp.net-mvc-3

7
推荐指数
1
解决办法
3161
查看次数

mvc3 jquery unobtrusive验证语言环境十进制字段

我正在使用不显眼的验证来处理本地化的mvc3 Web应用程序.在web.config中我得到了:

<globalization culture="pl-PL" uiCulture="pl" />
Run Code Online (Sandbox Code Playgroud)

Jquery 1.4.4和jquery验证1.6正在使用中.

问题是十进制数字分隔符.

我可以看到jquery验证忽略了文化,并期望点字符始终是小数分隔符.我需要使用逗号代替.我认为例如德语也是如此.

我创建了自己的methods_pl.js文件:

jQuery.extend(jQuery.validator.methods, {
number: function(value, element) {
    return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
}
});
Run Code Online (Sandbox Code Playgroud)

以上是解决十进制数根本无法识别的基本问题.

但是当我尝试在我的模型Decimal Price属性上使用RangeAttribute时,它仍然不起作用.怎么解决这个?

unobtrusive-validation asp.net-mvc-3

6
推荐指数
1
解决办法
8121
查看次数

在模型集合上使用AdditionalFields进行远程验证

当我在视图上只有一个模型实例时,远程验证工作正常.

问题是我的观点是处理模型的集合.这是我的模型:

public class TableFormTestModel
{
    public GridRow[] GridData { get; set; }
    public class GridRow
    {
        public Int32 Id { get; set; }

        [Required, StringLength(50), Remote("IsNameAvailable", "TableFormTest", "Admin", AdditionalFields = "Id")]
        public String Name { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我看来,我有:

@model TableFormTestModel
@using (Html.BeginForm())
{
    Html.EnableClientValidation();
    Html.EnableUnobtrusiveJavaScript();
    for(var i = 0;i<Model.GridData.Length;i++)
    {
    <div>
        @Html.HiddenFor(x => Model.GridData[i].Id)
        @Html.TextBoxFor(x => Model.GridData[i].Name)
        @Html.ValidationMessageFor(x => Model.GridData[i].Name)    
    </div>
    }
}
Run Code Online (Sandbox Code Playgroud)

生成表单有很长的路要走,有人可以为我改进语法吗?

生成以下html表单:

<form method="post" action="/Admin/TableFormTest/">    <div>
    <input type="hidden" value="1" name="GridData[0].Id" id="GridData_0__Id" data-val-required="The Id …
Run Code Online (Sandbox Code Playgroud)

validation jquery unobtrusive-validation asp.net-mvc-3

5
推荐指数
1
解决办法
2254
查看次数

mvc3 ValidationSummary排除属性错误IValidatableObject

我的模型(A类)有一个B类属性(称为b)并已IValidatableObject实现.

视图已经有了 @Html.ValidationSummary(true)

在验证摘要中,我想排除与属性相关的错误.在B类IValidatableObject实现中返回ValidationResult没有memberNames

但是IValidatableObject由于B类是A类的属性,因此不会显示B类的Valiadtion错误

如何显示B类非属性验证错误?

c# validationsummary asp.net-mvc-3

5
推荐指数
1
解决办法
7540
查看次数